带有指纹资产的Chrome工作区

时间:2014-04-15 22:16:17

标签: css google-chrome bundling-and-minification developer-tools cassette

Chrome workspaces:我想说我将本地CSS文件映射到本地http服务器提供的文件。一切都很好,我可以在浏览器中修改文件,在页面刷新后我的更改仍然存在。

我们碰巧指纹我们的资产,以便通过styles.css?longuniquehash等网址引用它们。很棒的做法 - 这样我们可以使用积极的缓存,并确保客户端将使用最新的资产。

然而,这会对工作空间产生一些反作用,因为每当更新URL时映射都会丢失。简而言之:我们将styles.css?123映射到本地资源,我们对其进行更改,并在页面刷新时将其作为styles.css?234返回,必须再次映射。

我们正在使用cassette,但问题可以通过指纹识别在任何设置上重现。我缺少一个设置或解决方法吗?

2 个答案:

答案 0 :(得分:1)

根据Chromium的说法,支持使用查询参数(即style.css?123)映射网址只是部分到了Chrome 49 - 它已完全删除。

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

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

答案 1 :(得分:-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]