25

Chrome 工作区:假设我将本地 CSS 文件映射到本地 http 服务器提供的文件。一切都很好,我可以在浏览器中修改文件,并且在页面刷新时我的更改仍然存在。

我们碰巧对我们的资产进行了指纹识别,以便通过诸如styles.css?longuniquehash. 很好的实践——这样我们可以使用积极的缓存,并确保客户端将使用最新的资产。

但是,这对工作空间有点适得其反,因为每当更新 url 时映射就会丢失。简而言之:我们映射styles.css?123到本地资源,我们更改它并在页面刷新时返回,因为styles.css?234它必须再次映射。

我们正在使用盒式磁带,但可以在任何带有指纹识别的设置上重现该问题。是否有我缺少的设置或解决方法?

4

2 回答 2

1

根据 Chromium 的说法,在style.css?123Chrome 49 之前,对使用查询参数 (ie) 映射 URL 的支持只是部分支持——它被完全删除了。

如果您无法从代码中手动删除参数,临时解决方法是?123在页面加载后从 Chrome 检查器中的样式表引用中删除参数。然后,您的工作区映射和自动刷新应该可以正常工作,直到您再次加载页面。

您可以在此处加注星标并关注此问题:bugs.chromium.org

于 2016-04-27T08:28:10.037 回答
-1

我假设您不在您的实时服务器上开发(如果您这样做,请停止并在您的本地计算机或至少在测试服务器上进行开发),因此您仅在您的实时环境中激活“缓存破坏器”。我们总是有一种快速的方法来检查我们在所有项目上运行的环境,所以只需在附加“?123”查询之前进行检查。我你没有在代码中解决这个问题你也可以在你的 htacces 中添加它(如果你使用的是 apache)

SetEnvIf Host 'local.domain.com' runenv=local

RewriteCond %{ENV:runenv} ^local$
RewriteCond %{REQUEST_URI} .*\.css
RewriteCond %{QUERY_STRING} !^$
RewriteRule ^(.*)$ /$1? [R=301,L]
于 2015-05-25T21:45:17.570 回答