为什么Chrome在更改时不会更新Typescript源文件?

Ali*_*sam 23 caching google-chrome google-chrome-devtools visual-studio-2012 typescript

我正在使用Visual Studio 2012和最新的Web Essentials作为IDE开发TypeScript(0.9.1)项目,并使用Chrome Developer工具进行调试.

最近,很可能是在Chrome更新(cur.版本29.0.1547.66 m)之后,我编辑后,typeScript文件没有得到更新,另一方面相应的已编译的js文件也会更新,但似乎某种程度上是功能仍然取决于源的非更新版本.

解决方案尝试失败:

  • 重建完整的解决方案.
  • 在Chrome上刷新本地主机站点(Shift + F5)
  • 删除源映射文件并再次生成它们.

经过一些试验后,即使是下载ts源文件的请求也会产生非更新版本(http://localhost:1198/xxx.ts例如)

看起来问题在完全重启后会得到部分修复(如果重要的话是Windows 8),源文件会在chrome中更新,但是一旦我再次更改它,就会出现同样的问题.

另一个解决方案是使用隐身,因为它似乎是一个缓存问题.

我的问题:

缓存typeScript文件的方式是由项目配置中的问题引起的(即使以前工作过),或者这是新版Chrome中的错误?

Abd*_*GIN 24

我遇到了同样的问题.我用chreome调试工具解决了这个问题,禁用了缓存检查.

我的第二个问题,我在同一个文件中写了很多课.我把每个班级分开来分开文件.

在此输入图像描述


Jan*_*ard 17

我通过手动删除缓存的文件解决了这个问题.这可以通过Chrome的设置完成:

  1. 点击自定义并控制谷歌浏览器 - 浏览器窗口右上角的汉堡菜单图标.
  2. 选择菜单底部附近的设置.
  3. 向下滚动并单击" 显示高级设置..."链接.
  4. 单击清除浏览数据...按钮.
  5. 检查缓存的图像和文件.其他复选框可以不选中.
  6. 单击清除浏览数据按钮.

网络选项卡中的"禁用缓存"复选框对我不起作用,也不是Ctrl + F5.


bas*_*rat 14

如果您从IIS提供服务,我们已在web.config文件中手动禁用缓存:

<system.webServer>

    <httpProtocol>

      <!--TODO: Remove this block for production (//TODO: Remove this block for production) -->
      <customHeaders>
        <!--DISABLE CACHE-->
        <add name="Cache-Control" value="no-cache, no-store, must-revalidate" />
        <add name="Pragma" value="no-cache" />
        <add name="Expires" value="0" />
      </customHeaders>

    </httpProtocol>
</system.webServer>     
Run Code Online (Sandbox Code Playgroud)

  • 我认为这些配置解决了这个问题,但我很好奇,为什么不更新ts文件但是它更新了js文件,是什么让我更加疯狂为什么它运行未更新的js文件,即使它正在查看最新版本 ? (5认同)