繁体   English   中英

Visual Studio 2013 缓存旧版本的 .js 文件

[英]Visual Studio 2013 caching older version of .js file

我正在 Visual Studio 2013 Ultimate 中开发一个小型 Web api 项目。 Windows 2013. Internet Explorer 9. 当我使用内部 Web 服务器(我想现在是 IIS Express)从 VS 运行(调试)时,我发现我正在对 javascript 页面进行(并保存)更改忽略。 在 javascript 中放置断点会显示没有我更改的旧代码。

CTRL+F5 不会强制应用程序使用当前更新的页面。 签入页面,然后将其签出通常是可行的。 有什么设置或技巧可以帮助我吗?

清除缓存历史似乎有点过分,我不想一直这样做。

以下解决方案在 Internet Explorer 中对我有用:首先启用脚本调试:

  1. 工具菜单 -> 选择 Internet 选项
  2. 在高级选项卡上取消选中“禁用脚本调试(Internet Explorer)”

然后确保您获得最新的页面:

  1. 从工具菜单中选择 Internet 选项。
  2. 在常规选项卡上的浏览历史记录下,单击设置。
  3. 在“检查存储页面的较新版本”下,确保选中“每次我访问该网页”。
  4. 单击确定按钮。

如果有人遇到此问题并且 ctrl+F5、清除浏览器缓存、重新启动调试、更改浏览器、更改 web.config 和重建项目没有帮助,那么最后一件事(至少对我来说)有效:重新启动 Visual Studio .

更改本地 IIS Express 上的调试端口也有帮助,但如果在团队中工作或使用 Azure Active Directory 等,这会更加痛苦。

唯一对我有用的解决方案是更改 javascript 文件名并更新捆绑配置以指向新文件。 我尝试了其他所有方法,包括重新启动我的电脑、删除 bin/obj/cache/etc、CTRL F5、重新启动 IIS 等等。

如果我是正确的,您应该在调试之前构建 (ctrl+shift+b) 您的项目。 每当您在调试模式下启动时,此 Web 服务器都会在选择的端口上在后台运行。 如果您需要新会话或在 VS 中按 F5,您可以关闭任务(时钟旁边的进程栏)。

如果你有 IIS (Express) 或类似的东西,你可以避免使用内置的 web 服务器。 转到 RUN 并键入iis ,具体取决于已安装的操作系统。 否则尝试在Control Panel > Programs or Features > Turn windows features on or off中安装它

  • 添加网站(站点名称、路径、主机名)
  • 添加到您的主机文件127.0.0.1 hostname (c:\windows\system32\drivers\etc\hosts)

在 Visual Studio 中调试您的项目:

  • 在您喜欢的浏览器中以您的主机名打开您的网站
  • 点击调试
  • 单击附加到进程
  • 找到 w3wp.exe
  • 在浏览器中按 ctrl+f5 开始调试服务器代码

根据您的解决方案/项目的设置方式,如果您选择发布到File System ,您可以将项目文件直接发布到 IIS。 右键单击您的项目并选择publish 从那里设置它。

如果您的 Visual Studio 是最新的,您可以使用alt+$+p发布单个文件。

希望能帮助到你。

找到页面加载JavaScript文件的代码段,并在末尾添加参数字符串进行测试。 例如:

更改 src="../Resources/js/MyScriptFile.js"

到 src="../Resources/js/MyScriptFile.js?v=23"

每次更新 JavaScript 文件时,都会更改版本号。 这将强制浏览器加载新版本的 JavaScript 文件。 完成测试后,您可以删除字符串“?v=23”。 奖金,如果你把它留在那里,在你将代码部署到生产环境后,最终用户将不需要刷新他/她的浏览器缓存。

我经常遇到这个问题。 通常我要做的是首先进入安装操作系统的驱动器(在我的情况下是C: ),并删除所有application.dllapplication.pdb (它存储在Windows\Microsoft.net\Framework\vx.x.xxxxx\Temporary ASP.NET Files )。 删除users\xxx中的application.dllapplication.pdb 进入应用程序目录并再次删除application.dllapplication.pdb 清除浏览器缓存。 重新启动系统(冷启动)。 构建应用程序。 大部分时间都在工作。 注意:我使用 DOS 提示符进行删除,因为我已经习惯了。 但是用户应该有管理员权限。 这不是一个完美的解决方案,但它有效。

对我有用的是

  1. 关闭 Visual Studio 2013 更新 2(我有 win 8.1 all 64 bit)
  2. 删除清除“C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files”
  3. 清洁和重建解决方案
  4. 重新启动 IIS Express。 如果使用 IIS,只需重新启动应用程序和池。
  5. 在 VS 2013 Debug (F5) 中运行它仍然会在 Script Documents > Windows Internet Explorer > Page_Name.aspx 下加载旧文件
  6. 然后 F12 开发者工具清除浏览器缓存(IE),我在 Chrome 中也有同样的问题
  7. F5 在浏览器重新加载页面最后用我的调试器加载更改后的 JS 脚本文件; 入口和断点设置

所以我遇到了同样的问题,我可以通过取消 Visual Studio 中的 .ASP.NET-Server .ASP.NET-Server 以从 Visual Studio 进行调试并重新启动调试来避免这种情况。 希望这可以帮助某人。

我重新启动了 Visual Studio 并重建了项目,但问题仍然存在——调试器继续运行 .js 文件的旧副本。 我的解决方案是简单地重新启动机器。 (当一切都失败了......)

作为参考,我目前使用的是 Visual Studio 2015。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM