在smarty中自动化css版本控制(2.6)

时间:2015-05-17 13:50:02

标签: css smarty versioning smarty2

我需要强制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:...........

任何人都知道如何做到这一点?

提前致谢

1 个答案:

答案 0 :(得分:0)

您可以将此修饰符添加到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">