我遇到了一个重写规则的问题,我正在使用它来自动对我的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是问题,但我不知道为什么。
答案 0 :(得分:1)
到目前为止RewriteRule很好。也许问题出在相对URL上,请求有一些前缀。
如果是这种情况,您必须更具体(以includes
开头),也不要在请求字符串的开头锚定。并将其重写为绝对URL路径
RewriteRule (includes/.*)\.[\d]{10}\.(css|js)$ /$1.$2 [L]
如果您有多个.htaccess文件,则.htaccess更接近根目录的具体(css
)overrides。要合并这些.htaccess文件,您必须在css
.htaccess文件中使用RewriteOptions Inherit
或RewriteOptions InheritBefore
。