CSS / JS自动版本.htaccess

时间:2013-03-25 13:33:37

标签: .htaccess mod-rewrite

我遇到了一个重写规则的问题,我正在使用它来自动对我的CSS和JS进行版本控制。

我有以下HTML代码来包含我的样式表:

<link rel="stylesheet" type="text/css" href="includes/css/index_home.1364215354.css" />

我在.htaccess中使用它来去除点和10位数字:

RewriteEngine On
RewriteRule ^(.*)\.[\d]{10}\.(css|js)$ $1.$2 [L]

当我加载网站时,样式表无法加载,即使我将浏览器指向http://www.example.com/includes/css/index_home.css我也能看到样式表。

我尝试使用的方法,我在How to force browser to reload cached CSS/JS files?

找到了

我猜RewriteRule是问题,但我不知道为什么。

1 个答案:

答案 0 :(得分:1)

到目前为止RewriteRule很好。也许问题出在相对URL上,请求有一些前缀。

如果是这种情况,您必须更具体(以includes开头),也不要在请求字符串的开头锚定。并将其重写为绝对URL路径

RewriteRule (includes/.*)\.[\d]{10}\.(css|js)$ /$1.$2 [L]

如果您有多个.htaccess文件,则.htaccess更接近根目录的具体(cssoverrides。要合并这些.htaccess文件,您必须在css .htaccess文件中使用RewriteOptions InheritRewriteOptions InheritBefore