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

问题描述 投票:31回答:9

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

CTRL + F5不会强制应用程序使用当前更新的页面。检查页面,然后检查它通常有效。是否有一些设置或技巧可以帮助我在这里?

javascript visual-studio-2013
9个回答
24
投票

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

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

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

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

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

8
投票

如果有人有这个问题和ctrl + F5,清除浏览器的缓存,重新启动调试,更改浏览器,更改web.config和重建项目没有帮助,那么最后一件事是有效的(至少对我而言):重启Visual Studio 。

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


2
投票

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


1
投票

如果我是正确的,你应该在调试之前构建(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中调试项目:

  • 在您喜欢的浏览器中打开主机名上的网站
  • 点击DEBUG
  • 点击ATTACH TO PROCESS
  • 找到w3wp.exe
  • 在浏览器中按ctrl + f5开始调试服务器代码

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

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

希望能帮助到你。


0
投票

对我有用的是

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

0
投票

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


0
投票

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

更改src =“../ Resources / js / MyScriptFile.js”

to src =“../ Resources / js / MyScriptFile.js?v = 23”

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


0
投票

所以我有同样的问题,我可以通过取消Visual Studio中的.ASP.NET-Server .ASP.NET-Server from Visual Studio for debugging并重新启动调试来避免这种情况。希望这有助于某人。


-2
投票

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

作为参考,我目前正在使用Visual Studio 2015。

© www.soinside.com 2019 - 2024. All rights reserved.