我试图使我的css链接内联(为速度优化)。下面是一个纯php示例:
echo '<style>';
foreach ($module_css_files as $css_lib) {
include(DIR_FS_ROOT. 'htdocs/css/' . $css_lib);
} //foreach
echo '</style>';
但是在smarty这个想法不工作-当我试图
{include file="mysite/htdocs/style.css" }
每次smarty返回白色屏幕,PHP日志中没有错误。如果尝试包含一个正常的。tpl或小的javascript文件,这是没有问题的,但如果尝试与css smarty只是崩溃。请帮助!
有以下几种可能的解释:
根据你的配置,Smarty可能会在htdocs/css/templates_c中生成解析后的文件。如果文件夹不存在或不可写,将产生一个错误
Smarty会尝试将css解析为Smarty模板,也就是
.test {overflow:hidden}
也会产生错误。您可以尝试以下操作:
添加{literal}到你的CSS注释之间,这样它不会破坏CSS文件,如果你想调用它,而不是使用它内联:
/*{literal}*/
.test {overflow:hidden}
...
/*{/literal}*/
或者,如果你使用smarty 3,你可以确保每个左括号后面至少有一个空格,这样smarty就不会把它和模板指令
混淆了.test { overflow:hidden}
但是,最好的选择是使用php读取css文件内容,并将其作为变量传递给smarty,以避免不必要的处理时间,因为它可能需要将css作为模板读取和解析。