如何使用 smarty - seo 速度优化将所有 css 链接转换为内联样式
How to convert all css links in inline styles using smarty - seo speed optimization
我正在尝试使我的 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 return 白屏 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,您只需确保每个左括号后至少有一个 space,这样 smarty 就不会将其与模板指令混淆
.test { overflow:hidden}
然而,最好的选择是使用 php 读取 css 文件内容并将它们作为变量传递给 smarty,以避免读取可能花费的不必要的处理时间并将 css 解析为模板。
我正在尝试使我的 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 return 白屏 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,您只需确保每个左括号后至少有一个 space,这样 smarty 就不会将其与模板指令混淆
.test { overflow:hidden}
然而,最好的选择是使用 php 读取 css 文件内容并将它们作为变量传递给 smarty,以避免读取可能花费的不必要的处理时间并将 css 解析为模板。