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