在smarty(2.6)中自动化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:...........

有人知道怎么做吗?

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">

最新更新