在 smarty(2.6) 中自动化 css 版本控制
Automate the css versioning in smarty(2.6)
我需要强制 CSS
更改立即上线,我发现向 CSS
添加一个版本将有助于做到这一点,如下所示。
<link rel="stylesheet" href="css/style.css?version=123456" media="all"/>
我需要自动执行此操作,因为在需要对 css 文件进行小改动时,很难始终更改主文件。
所以我在 PHP
中找到了以下代码行(样本)来做同样的工作。
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); echo '?' . filemtime( get_stylesheet_directory() . '/style.css'); ?>" type="text/css" media="screen, projection" />
我试图将此行转换为 Smarty
,但出现错误。
代码:
<link rel="stylesheet" href="css/style.css?version={@filemtime:css/style.css} />
错误:
syntax error: unrecognized tag: @filemtime:...........
有人知道怎么做吗?
提前致谢
您可以将此修改器添加到 smarty 插件文件夹,
function smarty_modifier_filemtime($path){
$path = str_replace(array('/', '\'), DIRECTORY_SEPARATOR, $path);
return filemtime( YOUR_HOME_DIR.$path );
}
然后像下面这样称呼它,
<link rel="stylesheet" href="/css/style.css?v={'/css/style.css'|@filemtime}" type="text/css">
我需要强制 CSS
更改立即上线,我发现向 CSS
添加一个版本将有助于做到这一点,如下所示。
<link rel="stylesheet" href="css/style.css?version=123456" media="all"/>
我需要自动执行此操作,因为在需要对 css 文件进行小改动时,很难始终更改主文件。
所以我在 PHP
中找到了以下代码行(样本)来做同样的工作。
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); echo '?' . filemtime( get_stylesheet_directory() . '/style.css'); ?>" type="text/css" media="screen, projection" />
我试图将此行转换为 Smarty
,但出现错误。
代码:
<link rel="stylesheet" href="css/style.css?version={@filemtime:css/style.css} />
错误:
syntax error: unrecognized tag: @filemtime:...........
有人知道怎么做吗?
提前致谢
您可以将此修改器添加到 smarty 插件文件夹,
function smarty_modifier_filemtime($path){
$path = str_replace(array('/', '\'), DIRECTORY_SEPARATOR, $path);
return filemtime( YOUR_HOME_DIR.$path );
}
然后像下面这样称呼它,
<link rel="stylesheet" href="/css/style.css?v={'/css/style.css'|@filemtime}" type="text/css">