Heim Backend-Entwicklung PHP-Tutorial PHP-smarty引起的白屏故障

PHP-smarty引起的白屏故障

Jul 29, 2016 am 08:57 AM
gt smarty

今天遇到了一个比较大而且棘手的问题——更新了smarty的模板之后,页面白屏了,然而在预发布环境下测试的时候,并没有发现这个情况!最后,找到了原因,竟然是与smarty的模板编译原理有关。

编写一个简单的smarty页面,运行之后查看模板的编译目录,找到对应的编译文件。

<?php /*%%SmartyHeaderCode:1631756d543241d8d77-45493985%%*/if(!defined(&#39;SMARTY_DIR&#39;)) exit(&#39;no direct access allowed&#39;);
$_valid = $_smarty_tpl->decodeProperties(array (
  'file_dependency' => 
  array (
    '177dfb3e2809e44a1ff3a49d04e73219944e3fef' => 
    array (
      0 => 'tpl\\test.htm',
      1 => 1458725943,         #注意到这个值1458725943为2016/3/23 17:39:03
      2 => 'file',
    ),
.........
  'has_nocache_code' => false,
),false); /*/%%SmartyHeaderCode%%*/?>
Nach dem Login kopieren
如果我将这个值调整到未来的时间(2016/3/23 23:16:5),并修改模板文件会发生什么?可以看到即使我们修改了模板,页面也是没有变化的,也就是说,smarty模板并没有重新编译。那么,1458725943这个时间表示什么意思呢?这个时间,是模板文件的修改时间。总结来说,如果你更新的模板文件的修改时间比覆盖前的模板的修改时间要早,那么smarty不会重新编译(开发环境系统时间不正确就会导致这个问题)。

但是,出问题的smarty模板是同一个开发者开发的,而且也能确认新版本的模板文件的修改时间正确,却导致了白屏。后来,也终于查出了原因——由于文件上传过程中,修文件的修改时间为服务器的当前时间,导致了smarty编译了不完整的模板文件,导致了白屏。当模板文件上传完成之后,该文件的修改时间变成真实的修改时间,此时smarty就不会再编译了。

之前上传smarty模板一直没遇到这个问题,但是并发量高的服务器上,问题出现的概率也会提高。

解决方案:

更新模板文件后,需要清空smarty的编译目录。

以上就介绍了PHP-smarty引起的白屏故障,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was sind die Unterschiede zwischen Huawei GT3 Pro und GT4? Was sind die Unterschiede zwischen Huawei GT3 Pro und GT4? Dec 29, 2023 pm 02:27 PM

Viele Benutzer werden sich bei der Auswahl von Smartwatches für die Marke Huawei entscheiden. Viele Benutzer sind neugierig auf den Unterschied zwischen Huawei GT3pro und GT4. Was sind die Unterschiede zwischen Huawei GT3pro und GT4? 1. Aussehen GT4: 46 mm und 41 mm, das Material ist Glasspiegel + Edelstahlgehäuse + hochauflösende Faserrückschale. GT3pro: 46,6 mm und 42,9 mm, das Material ist Saphirglas + Titangehäuse/Keramikgehäuse + Keramikrückschale 2. Gesundes GT4: Mit dem neuesten Huawei Truseen5.5+-Algorithmus werden die Ergebnisse genauer. GT3pro: EKG-Elektrokardiogramm sowie Blutgefäß und Sicherheit hinzugefügt

Fix: Snipping-Tool funktioniert unter Windows 11 nicht Fix: Snipping-Tool funktioniert unter Windows 11 nicht Aug 24, 2023 am 09:48 AM

Warum das Snipping-Tool unter Windows 11 nicht funktioniert Das Verständnis der Grundursache des Problems kann dabei helfen, die richtige Lösung zu finden. Hier sind die häufigsten Gründe, warum das Snipping Tool möglicherweise nicht ordnungsgemäß funktioniert: Focus Assistant ist aktiviert: Dies verhindert, dass das Snipping Tool geöffnet wird. Beschädigte Anwendung: Wenn das Snipping-Tool beim Start abstürzt, ist es möglicherweise beschädigt. Veraltete Grafiktreiber: Inkompatible Treiber können das Snipping-Tool beeinträchtigen. Störungen durch andere Anwendungen: Andere laufende Anwendungen können mit dem Snipping Tool in Konflikt geraten. Das Zertifikat ist abgelaufen: Ein Fehler während des Upgrade-Vorgangs kann zu diesem Problem führen. Diese einfache Lösung ist für die meisten Benutzer geeignet und erfordert keine besonderen technischen Kenntnisse. 1. Aktualisieren Sie Windows- und Microsoft Store-Apps

So beheben Sie den Fehler „Verbindung zum App Store nicht möglich' auf dem iPhone So beheben Sie den Fehler „Verbindung zum App Store nicht möglich' auf dem iPhone Jul 29, 2023 am 08:22 AM

Teil 1: Erste Schritte zur Fehlerbehebung Überprüfen des Apple-Systemstatus: Bevor wir uns mit komplexen Lösungen befassen, beginnen wir mit den Grundlagen. Das Problem liegt möglicherweise nicht an Ihrem Gerät; die Server von Apple sind möglicherweise ausgefallen. Besuchen Sie die Systemstatusseite von Apple, um zu sehen, ob der AppStore ordnungsgemäß funktioniert. Wenn es ein Problem gibt, können Sie nur warten, bis Apple es behebt. Überprüfen Sie Ihre Internetverbindung: Stellen Sie sicher, dass Sie über eine stabile Internetverbindung verfügen, da das Problem „Verbindung zum AppStore nicht möglich“ manchmal auf eine schlechte Verbindung zurückzuführen ist. Versuchen Sie, zwischen WLAN und mobilen Daten zu wechseln oder die Netzwerkeinstellungen zurückzusetzen (Allgemein > Zurücksetzen > Netzwerkeinstellungen zurücksetzen > Einstellungen). Aktualisieren Sie Ihre iOS-Version:

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

Eine vorläufige Studie zu Smarty, der Template-Engine in PHP Eine vorläufige Studie zu Smarty, der Template-Engine in PHP May 11, 2023 pm 05:15 PM

Heutzutage ist die Website-Entwicklung untrennbar mit einer wichtigen Komponenten-Template-Engine verbunden. Eine Template-Engine bezieht sich auf ein Tool, das Seitenvorlagen und Daten kombiniert, um HTML-Code mit einem bestimmten Format zu generieren. In verschiedenen Website-Entwicklungsframeworks ist die Template-Engine eine wesentliche Komponente, da die Template-Engine die Duplizierung von Code erheblich reduzieren und die Dynamik der Seite verbessern kann. Eine der gebräuchlichsten und beliebtesten Template-Engines ist Smarty. Smarty ist ein DSL (DomainSpecif

So verwenden Sie PHP und Smarty, um eine Front-End- und Back-End-Trennentwicklung zu erreichen So verwenden Sie PHP und Smarty, um eine Front-End- und Back-End-Trennentwicklung zu erreichen Jun 25, 2023 pm 01:46 PM

In der modernen Webentwicklung ist die Trennung von Front-End und Back-End zu einem sehr beliebten Trend geworden, der es Entwicklern ermöglicht, Projekte besser zu organisieren und die Effizienz der Projektentwicklung zu verbessern. PHP und Smarty sind zwei sehr häufig verwendete Technologien, mit denen eine Front-End- und Back-End-Trennungsentwicklung erreicht werden kann. In diesem Artikel wird erläutert, wie Sie mit PHP und Smarty eine Front-End- und Back-End-Trennungsentwicklung erreichen. Was ist Front-End- und Back-End-Trennung? Bei der traditionellen Webentwicklung ist das Front-End hauptsächlich für die Darstellung der Seite und die Logik der Interaktion mit dem Back-End verantwortlich. Das Backend ist hauptsächlich für das Geschäft verantwortlich

So verwenden Sie die Smarty-Template-Engine in der PHP-Entwicklung So verwenden Sie die Smarty-Template-Engine in der PHP-Entwicklung Jun 27, 2023 pm 01:28 PM

Als PHP-Entwickler ist die Verwendung einer Template-Engine eine natürliche Wahl. Smarty ist eine beliebte Template-Engine, die eine Möglichkeit bietet, HTML/CSS/JavaScript vom PHP-Code zu trennen, sodass Entwickler Projekte besser organisieren und verwalten können. In diesem Artikel erfahren Sie, wie Sie die Smarty-Template-Engine während der PHP-Entwicklung verwenden. 1. Smarty installieren Vorher müssen wir Smarty installieren. In diesem Artikel verwenden wir Composer zur Installation

So verwenden Sie PHP und die Smarty-Template-Engine So verwenden Sie PHP und die Smarty-Template-Engine May 11, 2023 pm 03:33 PM

PHP ist eine leistungsstarke serverseitige Skriptsprache, die zur Entwicklung von Webanwendungen verwendet werden kann. In den Anfängen der Webentwicklung verwendeten Programmierer viel HTML- und JavaScript-Code, um Webanwendungen zu entwickeln. Allerdings ist dieser Ansatz schwer zu warten und zu verwalten, da der HTML- und JavaScript-Code sehr komplex werden kann. Um dieses Problem zu lösen, wurde die Smarty-Template-Engine erstellt. Smarty ist eine auf PHP basierende Template-Engine zur Verwaltung und Generierung von W

See all articles