백엔드 개발 PHP 튜토리얼 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%%*/?>
로그인 후 복사
如果我将这个值调整到未来的时间(2016/3/23 23:16:5),并修改模板文件会发生什么?可以看到即使我们修改了模板,页面也是没有变化的,也就是说,smarty模板并没有重新编译。那么,1458725943这个时间表示什么意思呢?这个时间,是模板文件的修改时间。总结来说,如果你更新的模板文件的修改时间比覆盖前的模板的修改时间要早,那么smarty不会重新编译(开发环境系统时间不正确就会导致这个问题)。

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

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

解决方案:

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

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

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

화웨이 GT3 Pro와 GT4의 차이점은 무엇입니까? 화웨이 GT3 Pro와 GT4의 차이점은 무엇입니까? Dec 29, 2023 pm 02:27 PM

많은 사용자들이 스마트 시계를 선택할 때 Huawei 브랜드를 선택하게 됩니다. 그 중 Huawei GT3pro와 GT4가 가장 인기 있는 선택입니다. 두 제품의 차이점을 궁금해하는 사용자가 많습니다. Huawei GT3pro와 GT4의 차이점은 무엇입니까? 1. 외관 GT4: 46mm와 41mm, 재질은 유리 거울 + 스테인레스 스틸 본체 + 고해상도 섬유 후면 쉘입니다. GT3pro: 46.6mm 및 42.9mm, 재질은 사파이어 유리 + 티타늄 본체/세라믹 본체 + 세라믹 백 쉘입니다. 2. 건강한 GT4: 최신 Huawei Truseen5.5+ 알고리즘을 사용하면 결과가 더 정확해집니다. GT3pro: ECG 심전도, 혈관 및 안전성 추가

수정: Windows 11에서 캡처 도구가 작동하지 않음 수정: Windows 11에서 캡처 도구가 작동하지 않음 Aug 24, 2023 am 09:48 AM

Windows 11에서 캡처 도구가 작동하지 않는 이유 문제의 근본 원인을 이해하면 올바른 솔루션을 찾는 데 도움이 될 수 있습니다. 캡처 도구가 제대로 작동하지 않는 주요 이유는 다음과 같습니다. 초점 도우미가 켜져 있습니다. 이렇게 하면 캡처 도구가 열리지 않습니다. 손상된 응용 프로그램: 캡처 도구가 실행 시 충돌하는 경우 응용 프로그램이 손상되었을 수 있습니다. 오래된 그래픽 드라이버: 호환되지 않는 드라이버가 캡처 도구를 방해할 수 있습니다. 다른 응용 프로그램의 간섭: 실행 중인 다른 응용 프로그램이 캡처 도구와 충돌할 수 있습니다. 인증서가 만료되었습니다. 업그레이드 프로세스 중 오류로 인해 이 문제가 발생할 수 있습니다. 이 문제는 대부분의 사용자에게 적합하며 특별한 기술 지식이 필요하지 않습니다. 1. Windows 및 Microsoft Store 앱 업데이트

iPhone에서 App Store 오류에 연결할 수 없는 문제를 해결하는 방법 iPhone에서 App Store 오류에 연결할 수 없는 문제를 해결하는 방법 Jul 29, 2023 am 08:22 AM

1부: 초기 문제 해결 단계 Apple 시스템 상태 확인: 복잡한 솔루션을 살펴보기 전에 기본 사항부터 시작해 보겠습니다. 문제는 귀하의 기기에 있는 것이 아닐 수도 있습니다. Apple 서버가 다운되었을 수도 있습니다. Apple의 시스템 상태 페이지를 방문하여 AppStore가 제대로 작동하는지 확인하세요. 문제가 있는 경우 Apple이 문제를 해결하기를 기다리는 것뿐입니다. 인터넷 연결 확인: "AppStore에 연결할 수 없음" 문제는 때때로 연결 불량으로 인해 발생할 수 있으므로 인터넷 연결이 안정적인지 확인하십시오. Wi-Fi와 모바일 데이터 간을 전환하거나 네트워크 설정을 재설정해 보세요(일반 > 재설정 > 네트워크 설정 재설정 > 설정). iOS 버전을 업데이트하세요.

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

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

PHP와 Smarty를 사용하여 프런트엔드와 백엔드 분리 개발을 달성하는 방법 PHP와 Smarty를 사용하여 프런트엔드와 백엔드 분리 개발을 달성하는 방법 Jun 25, 2023 pm 01:46 PM

현대 웹 개발에서는 프런트엔드와 백엔드의 분리가 매우 대중적인 추세가 되었으며, 이를 통해 개발자는 프로젝트를 더 잘 구성하고 프로젝트 개발 효율성을 향상시킬 수 있습니다. PHP와 Smarty는 프런트엔드와 백엔드 분리 개발을 달성하는 데 사용할 수 있는 매우 일반적으로 사용되는 두 가지 기술입니다. 이 기사에서는 PHP와 Smarty를 사용하여 프런트엔드와 백엔드 분리 개발을 수행하는 방법을 소개합니다. 프론트엔드와 백엔드 분리 개발이란 무엇입니까? 전통적인 웹 개발에서 프론트엔드는 주로 페이지 표시와 백엔드와의 상호 작용 논리를 담당합니다. 백엔드는 주로 비즈니스를 담당합니다.

watch4pro가 더 나은가요, 아니면 gt인가요? watch4pro가 더 나은가요, 아니면 gt인가요? Sep 26, 2023 pm 02:45 PM

Watch4pro와 gt는 각각 서로 다른 기능과 적용 가능한 시나리오를 가지고 있습니다. 포괄적인 기능, 고성능, 세련된 외관에 중점을 두고 더 높은 가격을 감수할 의향이 있다면 Watch 4 Pro가 더 적합할 수 있습니다. 높은 기능 요구 사항이 없고 배터리 수명과 합리적인 가격에 더 많은 관심을 기울이는 경우 GT 시리즈가 더 적합할 수 있습니다. 최종 선택은 개인의 필요와 예산, 선호도에 따라 결정되어야 합니다. 자신의 필요를 잘 고려한 후 구매하고, 다양한 제품에 대한 리뷰와 비교를 참고하여 보다 현명한 선택을 하는 것이 좋습니다.

PHP의 템플릿 엔진인 Smarty에 대한 예비 연구 PHP의 템플릿 엔진인 Smarty에 대한 예비 연구 May 11, 2023 pm 05:15 PM

오늘날 웹사이트 개발은 중요한 구성 요소 템플릿 엔진과 분리될 수 없습니다. 템플릿 엔진은 페이지 템플릿과 데이터를 결합하여 특정 형식의 HTML 코드를 생성하는 도구를 말합니다. 다양한 웹사이트 개발 프레임워크에서 템플릿 엔진은 코드 중복을 크게 줄이고 페이지의 역동성을 향상시킬 수 있기 때문에 필수적인 구성 요소입니다. 가장 일반적이고 널리 사용되는 템플릿 엔진 중 하나는 Smarty입니다. Smarty는 DSL(DomainSpecif

PHP 개발에서 Smarty 템플릿 엔진을 사용하는 방법 PHP 개발에서 Smarty 템플릿 엔진을 사용하는 방법 Jun 27, 2023 pm 01:28 PM

PHP 개발자로서 템플릿 엔진을 사용하는 것은 자연스러운 선택입니다. Smarty는 HTML/CSS/JavaScript를 PHP 코드에서 분리하는 방법을 제공하여 개발자가 프로젝트를 더 잘 구성하고 관리할 수 있도록 하는 인기 있는 템플릿 엔진입니다. 이 기사에서는 PHP 개발 중에 Smarty 템플릿 엔진을 사용하는 방법을 알아봅니다. 1. Smarty 설치 먼저 Smarty를 설치해야 합니다. 이 기사에서는 Composer를 사용하여 설치하겠습니다.

See all articles