这几天碰到了怪事,css文件定义的居中使用smaty解析后,不起作用,为左对齐。
如下,其中的css代码:
#center{width:930px;margin:0 auto;padding:0;font-size:14px;clear:both;}/* 主体 */
按常理,
<div id=center>
内容
</div>
内容应该居中对齐,可是死活不行。
查看php文件,是utf-8编码,模板文件也是utf-8编码,php文件包含的其他文件也都是utf-8编码,但我注意到包含的Smarty.class.php是英文字符的,不存在编码问题,应该不是smarty的问题,所以也没在意。
下午,我用排除法,把包含的文件全部去除,只留下require SMARTY_DIR.’Smarty.class.php’; 和相关php语句,但还是老样子。
后来,我想起了缓存文件,因为smarty解析后生成缓存文件,出现对不齐的怪事应该可以从缓存文件里再判断,看缓存文件是否正常,打开templates_c目录,用EmEditor点开生成的文件,看了看没有发现什么可疑之处,但瞟了一下编码,发现也是utf-8编码(跟随php文件编码方式,php文件什么编码,它就是什么编码),但发现它是“不带签名”的方式,Smarty.class.php也是不带签名的方式,所以我把php文件和该php文件包含的其他文件都改成了不带签名的文件后,刷新,呵呵,成功了!
结论:
不但编码方式要一致,带不带签名也要一致!smarty是不带签名的方式所以,模板、css文件、php文件等都得是不带签名方式的。
<html xmlns=" http://www.w3.org/1999/xhtml">