这是去年10月份就遇到的问题,当时偶然解决了,并没有去想为什么会解决,到现在又遇到了。
具体表现:使用的是phrame + Smarty,把所有的页面响应都映射到index.php上去。在浏览器上看页面是一片空白,去年的解决方法是在命令行下使用php index.php,看到输出中有Smarty解析模板生成的HTML代码了,再去浏览器上看,页面正常。
但不能总是用这种方法来“激 活”页面显示。最后仔细调试一下发现问题出在权限上:Smarty编译解析templates目录下的模板文件,生成HTML代码,把生成的代码存储到 templates_c下面,然后就能正常显示。在命令行下运行 php index.php,也只是为了在templates_c下面产生生成的HTML代码,所以运行后就能“激活”显示。在浏览器中无论怎样刷新页面, templates_c下面都不会产生代码,所以显示就是一片空白。
在/etc/httpd/conf/httpd.conf文件中有这一行:
User apache
Group apache
http 服务器进程的uid是apache用户,而我的tempaltes_c目录是whb用户且目录权限是drwxr-xr-x。apache用户对这个目录没 有写权限,因此Smarty虽然解析了模板文件但是写不到templates_c下面去也是徒劳。解决方法就是改变templates_c目录权限使得 apache用户可以写,或者把这个目录的属主变成apache用户。
没有看到问题的本质的时候很多现象都联系不起来很多技术都只能靠死 记硬背,应该坚信技术的出现必然是为了解决问题,不理解这种技术是因为没有看到要解决的问题,而且我们使用的技术必然是当时从众多能够解决问题的方法中选 出来的最简单的那一个,感觉到难或者感觉有矛盾,是因为站的不够高。正如发现了自然数解决不了的问题,说明自然数不够“一般”,必须借助更一般的整数或者 有理数才可能解决这个问题。
Smarty输出空白的解决
最新推荐文章于 2021-03-26 11:54:40 发布