如何让Chrome重新加载源Map?

ztyzrc3y  于 8个月前  发布在  Go
关注(0)|答案(4)|浏览(146)

我使用的是Chrome Dev 27,在Dev Tools设置中选中了 * 禁用缓存 *。当我重新加载页面时,Chrome会正确地重新加载Map页面使用的所有资源,包括.js文件。但是,它不会自动重新加载相应的source maps.map。监控Chrome和我的应用之间的HTTP流量,在后续页面加载时,我没有看到任何来自Chrome的.map文件的请求。如何让Chrome也重新加载源Map?
Chrome不重新加载.map文件的问题是,它也不会重新加载生成.js的文件,在我的情况下,它恰好是一个CoffeeScript文件(.coffee),这意味着在调试时,在 Sources 选项卡中,我正在查看.coffee文件的旧版本,即使新代码(来自.js)正在运行。

h7wcgrx3

h7wcgrx31#

我今天也遇到了同样的问题,解决这个问题的方法是关闭源文件下的coffee文件标签,进入网络标签,右键点击,选择“清除浏览器缓存”
这帮我修好了
也就是说,Map的文件并不总是“卡”在缓存中,只有有时,当他们这样做,清除缓存技巧修复它。

zazmityj

zazmityj2#

只是遇到了同样的问题,并找到了一些额外的解决方案:
根据这个commit和这个bug report的 chrome ,问题已经解决,应该不会影响下一个构建。
对于这个问题,有一个比清除整个浏览器缓存更简单的解决方案:
在浏览器选项卡中打开源代码Map,然后进行硬重载(根据操作系统,尝试CTRL+F5)。这会刷新文件并保留浏览器缓存。
另一种方法,也许是一个很好的实践,是通过添加一个参数,如?build=12345,来破解源代码Map的生成。
如果您可以访问服务器配置或.htaccess,则可以为源Map扩展名(如“. js.map”)设置标头Cache-Control: no-cache

4nkexdtk

4nkexdtk3#

我通过删除.map文件并执行硬重新加载(CTRL-F5)解决了这个问题。
我不想失去我所有的历史!
基于@jdbertron评论的澄清:我的问题发生在开发和调试React应用程序时。IIRC我从本地开发环境中删除了.map文件(不在我的浏览器历史记录中),然后重新生成。这解决了 my 问题。

muk1a3rh

muk1a3rh4#

进入设置->显示高级设置->清除浏览数据->只检查“缓存的图像和文件”->点击“清除浏览数据”
这将清除您在浏览器中缓存的源Map,而不会删除所有Cookie。

相关问题