在Kohana中,是否有一种快速简便的方法来使用HTML::style() helper在脚本的情况下,在CSS或JS文件名之后自动包含文件的UNIX时间戳mtime ?
在CakePHP中,我只使用HTML/css帮助器,并在配置中:
Configure::write('Asset.timestamp', 'force');
这样做时:
echo $this->Html->css('styles');
它将输出:
<link rel="stylesheet" type="text/css" href="/css/styles.css?1338350352" />
我在我的每个项目中都使用这个:
class HTML extends Kohana_HTML
{
/**
* Given a file, i.e. /css/base.css, replaces it with a string containing the
* file's mtime, i.e. /css/base.1221534296.css.
*
* @param $file The file to be loaded. Must be an absolute path (i.e.
* starting with slash).
*/
public static function auto_version($file)
{
if (!file_exists($_SERVER['DOCUMENT_ROOT'] . '/' . $file))
return $file;
$mtime = filemtime($_SERVER['DOCUMENT_ROOT'] . '/' . $file);
return preg_replace('{''.([^./]+)$}', ".$mtime.'$1", $file);
}
}
在模板视图中:
<link type="text/css" href="<?php echo HTML::auto_version('/media/css/global.css') ?>" rel="stylesheet" />
信用去Kip回答从如何强制浏览器重新加载缓存的CSS/JS文件?
p。记得在你的。htaccess中添加下面的规则:
RewriteRule ^(.*)'.['d]{10}'.(css|js)$ $1.$2 [L]