【问题标题】:Visual Studio 2012 not picking up latest compiled TypeScript for ASP.NET MVC4 projectVisual Studio 2012 没有为 ASP.NET MVC4 项目选择最新编译的 TypeScript
【发布时间】:2012-11-09 18:37:21
【问题描述】:

如何强制 Visual Studio 2012 始终使用由 TypeScript 创建的生成的 JavaScript 文件的最新版本?

我在我的项目文件中使用以下定义:

<Target Name="BeforeBuild">
    <Exec Command="&quot;$(PROGRAMFILES)\Microsoft SDKs\TypeScript\0.8.0.0\tsc&quot; -out scripts\app.js scripts\app.ts  -target ES5 @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" IgnoreExitCode="true" />
  </Target>

当我清理和重建项目时,app.js 会相应更新。

但是,由于某些奇怪的原因,当我尝试使用 Internet Explorer 调试解决方案时,Visual Studio 使用的是过期版本的 app.js,这会使我的断点无效。

这是怎么回事?

【问题讨论】:

  • 你是如何引用页面上的 JavaScript 文件的?
  • 是的。脚本已正确加载,但副本已过期或已缓存。

标签: asp.net-mvc-4 visual-studio-2012 typescript


【解决方案1】:

这里最可能的问题不是 TypeScript 或 JavaScript - Internet Explorer 只是缓存 JavaScript 文件并使用过时的版本。

如果您引用的是单个脚本,您可以通过更改 URI 的任意部分来缓存它:

<script src="myscript.js?1"></script>

如果每次要替换缓存版本时增加 1,则会导致加载新脚本。您可以通过转储时间戳代替 1 来自动执行此操作。

如果您使用的是我在 MVC4 中推荐的捆绑,则捆绑器将附加脚本的哈希值,其作用相同。

【讨论】:

  • 我遇到了这个确切的问题;我正在使用捆绑,但我仍然没有得到更新的 javascript 文件。当我将 javascript 复制到页面上的脚本标记中时,它工作正常。有没有办法手动破坏 IE(现在是 Chrome)缓存?
猜你喜欢
  • 2016-06-15
  • 2012-09-25
  • 1970-01-01
  • 2012-10-13
  • 1970-01-01
  • 1970-01-01
  • 2015-05-23
  • 2014-06-16
  • 1970-01-01
相关资源
最近更新 更多