我需要强制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:...........
有人知道怎么做吗?
Thanks in advance
你可以把这个修饰符添加到smarty plugin文件夹,
function smarty_modifier_filemtime($path){
$path = str_replace(array('/', '\'), DIRECTORY_SEPARATOR, $path);
return filemtime( YOUR_HOME_DIR.$path );
}
然后把它叫做bellow,
<link rel="stylesheet" href="/css/style.css?v={'/css/style.css'|@filemtime}" type="text/css">