【问题标题】:How to get Chrome to reload source maps?如何让 Chrome 重新加载源地图?
【发布时间】:2013-03-08 11:18:14
【问题描述】:

我使用的是 Chrome Dev 27,并在开发工具设置中选中了禁用缓存。当我重新加载页面时,Chrome 会正确重新加载地图页面使用的所有资源,包括 .js 文件。但是,它不会自动重新加载相应的source maps.map。监控 Chrome 我的应用程序之间的 HTTP 流量,在后续页面加载时,我没有看到 Chrome 对 .map 文件的任何请求。如何让 Chrome 也重新加载源地图?

Chrome 不重新加载 .map 文件的问题是它也不会重新加载生成 .js 的文件,在我的例子中,它恰好是一个 CoffeeScript 文件 (.coffee),它意味着在调试时,在 Sources 选项卡中,我正在查看 .coffee 文件的旧版本,即使新代码(来自 .js)正在运行。

【问题讨论】:

    标签: google-chrome coffeescript source-maps


    【解决方案1】:

    我通过删除 .map 文件并执行硬重新加载 (CTRL-F5) 解决了这个问题。

    我不想失去我所有的历史!

    【讨论】:

      【解决方案2】:

      进入设置->显示高级设置->清除浏览数据->只勾选“缓存的图片和文件”->点击“清除浏览数据”

      这将清除您在浏览器中缓存的源地图,而不删除所有 cookie。

      【讨论】:

      • 讨厌失去我所有的历史!
      • @madannes 上面的内容怎么会丢失你的历史记录?
      • 对不起..应该更清楚。我的意思是说,我更喜欢这个答案,因为我讨厌失去 所有 我的历史记录,就像“清除浏览器缓存”一样。太糟糕了,我看不到如何编辑我以前的评论 =)
      • 你不会丢失你的历史,只有缓存。这就是为什么我说“只检查...”
      • @madannes 你不能编辑它,但你可以删除它。
      【解决方案3】:

      刚刚遇到同样的问题并找到了一些额外的解决方案:

      根据这个commit 和这个bug report 的铬,问题已经解决,不应该影响下一个构建。

      比清除整个浏览器缓存更简单一点的解决方案:

      在浏览器选项卡中打开源映射并执行硬重新加载(取决于操作系统,请尝试 CTRL+F5)。这会刷新文件并保留浏览器缓存。

      另一种方法也许是一种好的做法是通过添加像?build=12345 这样的参数来破解源映射生成。有关如何操作源映射文件名的信息,请参阅您的构建工具。

      如果您有权访问服务器配置或.htaccess,则可以为源映射扩展名设置标题Cache-Control: no-cache,例如“.js.map”。

      【讨论】:

        【解决方案4】:

        我今天也遇到了同样的问题。为我解决它的等待是关闭源下的咖啡文件选项卡,转到网络选项卡,右键单击,然后选择“清除浏览器缓存”

        这为我解决了问题。

        也就是说,对我来说,映射文件并不总是“卡”在缓存中……只是有时,当他们这样做时,清除缓存技巧会修复它。

        【讨论】:

        • 当 TypeScript 文件 (*.ts) 在 Chrome 中不刷新时也可以正常工作。谢谢你。
        • 是的..它似乎有时会卡住...... 2年后TypeScript和VisualStudio出现同样的问题......这应该是答案,因为它有助于解决卡住的缓存问题
        • 为一个 CSS 正在刷新的 SASS 项目工作,但它拒绝重新加载源映射,即使在重新启动浏览器后也是如此。他们需要解决这个问题。
        猜你喜欢
        • 2017-03-20
        • 2015-08-19
        • 2021-02-16
        • 2023-03-24
        • 2019-10-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多