0

我在使用用于 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也可以看到样式表,但无法加载样式表。

我尝试使用的方法,我在这里找到了如何强制浏览器重新加载缓存的 CSS/JS 文件?

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

4

1 回答 1

1

RewriteRule 到目前为止还不错。也许问题在于相对 URL 并且请求有一些前缀。

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

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

如果您有多个 .htaccess 文件,则更具体的 ( css)会覆盖更接近根目录的 .htaccess。要合并这些 .htaccess 文件,您必须在.htaccess 文件中使用RewriteOptions Inherit或。RewriteOptions InheritBeforecss

于 2013-03-25T14:36:52.340 回答