【发布时间】:2020-10-04 22:11:34
【问题描述】:
非常直截了当,我正在开发一个 MVC5 应用程序,并且(最近)注意到我的浏览器似乎正在缓存我在 @section Scripts { } 内的视图中的 JavaScript 代码。
目前我正在使用 Chrome 进行开发,我已经尝试过 CTRL+F5 和 CTRL+SHFT+R 重新加载页面,但我在 javascript 代码中未注释的 alert() 仍然按照注释呈现。我还尝试通过隐身模式以及其他浏览器(Firefox、IE)访问我的本地主机,并且得到了相同的行为。这是我的/Home/Index.cshtml 视图,这是应用程序启动时加载的默认视图。我还尝试在页面中添加一些额外的 HTML 文本,但新代码再次没有生效/显示。
我当前的 Chrome 版本是 Version 41.0.2272.118 m,如果有人知道会发生什么?
更新:
我已经在 Chrome 中的开发者工具 => 常规设置下检查了[X] Disable cache (while DevTools is open),然后反复(DevTools 仍然打开)尝试了CTRL+SHFT+R 和CTRL+F5,结果与之前我的更改未采取的结果相同效果。
更新 2:
打开 DevTools 后,我还按住了 Refresh 按钮并尝试了 Normal/Hard/和 Empty Cache & Hard Reload 选项,结果都相同。为了简化测试,我在下面添加了一个警报,以便在页面加载后立即显示(目前没有警报出现):
$(document).ready(function () {
alert("Test");
// Other Code/Functions -- No Error showing in Console
});
【问题讨论】:
-
开发者工具打开时可以禁用 Chrome 的缓存:stackoverflow.com/a/7000899/1710624
-
您能用@section Scripts { } 发布视图的内容供我们查看吗?如果我们能看到你做了什么,可能会更容易。同样使用chrome打开开发人员工具(F12)并单击cog打开设置,有一个“禁用缓存”复选框,勾选它,现在如果您在打开开发人员工具的情况下刷新页面,它将不会使用缓存跨度>
-
另外,这可能无济于事,但是当 chrome 调试面板打开时,您可以按住页面重新加载按钮以获取重新加载选项。选择空缓存和硬重新加载也可以从缓存中清除任何后续部分加载。请参阅stackoverflow.com/questions/14969315/… 了解更多信息。
-
您是否使用 MVC 中的捆绑/缩小或任何其他对脚本文件进行任何类型转换的机制?
-
@MahmoudAli,是的,我用
BundleConfig.cs设置了一些捆绑包,但这段代码特别是直接在我的视图上的@section Scripts { }中呈现——现在对视图代码的更改没有显示看起来都可以。
标签: javascript asp.net-mvc browser cross-browser browser-cache