我正在研究ASP.NET MVC4项目。当我更新JavaScript文件并在浏览器中运行我的项目时。新的更改没有反映在页面上我尝试在IIS服务器上发生同样的事情。为此,每次我必须删除浏览器历史记录然后反映,但这在部署后不正确
还有其他办法吗?
请指导我提前致谢
答案 0 :(得分:6)
检查浏览器是否正在缓存javascript。为此,请在浏览器中检查浏览器中javascript的标题,以查找属性 Cache-Control 。如果是,请在项目中将缓存控制配置为 no-cache 。仅在开发环境中禁用缓存。
检查部署后 Visual Studio 或 IIS 是否正在重新加载整个项目。
解决此问题的解决方案是javascript版本。
确保用户将收到新版javascript的一种方法是对文件名进行版本控制。
您可以将version
数字连接到javascript,而不是仅使用名称。
示例:
www.example.com/script.8238823.js
www.example.com/script.3434342.js
此网址代表不同的路径,浏览器将更新。
另一种方法是使用v=
+ version
等查询字符串。
version
可以是MD5哈希,也可以是文件的时间戳或字节大小。
示例:
www.example.com/script.js?v=999990
www.example.com/script.js?v=129
这会强制浏览器缓存文件,并在版本v
时重新加载。
我不使用ASP.NET,但我认为存在解决方案。
答案 1 :(得分:0)
我看到了类似的答案here,对您有帮助。具体来说,建议在URL的末尾添加一个查询参数,以引用您的JavaScript文件,以便您对其进行“版本控制”。
答案 2 :(得分:0)
不确定这是否是相同的问题。对于我的ASP.NET MVC4项目,我有一个Azure数据库和Web应用程序。 javascript文件未更新的原因是由于与数据库的连接已断开。在Server Explorer中刷新可解决问题/使用新的登录名重新建立连接可解决此问题。
还要确保您的发布方式具有正确的数据库管理员登录和连接。
答案 3 :(得分:-1)
您使用的是MVC Bundle吗?通过使用bundle和js包含为@ Scripts.Render(“bundle config file中使用的文件名”)不应该维持缓存。