不更新javascript文件

时间:2016-08-04 05:08:46

标签: javascript asp.net-mvc-4

我正在研究ASP.NET MVC4项目。当我更新JavaScript文件并在浏览器中运行我的项目时。新的更改没有反映在页面上我尝试在IIS服务器上发生同样的事情。为此,每次我必须删除浏览器历史记录然后反映,但这在部署后不正确

还有其他办法吗?

请指导我提前致谢

4 个答案:

答案 0 :(得分:6)

你的问题是:

  1. 浏览器缓存JavaScript
  2. 检查浏览器是否正在缓存javascript。为此,请在浏览器中检查浏览器中javascript的标题,以查找属性 Cache-Control 。如果是,请在项目中将缓存控制配置为 no-cache 。仅在开发环境中禁用缓存。

    1. Visual Studio或IIS未重新加载javascripts
    2. 检查部署后 Visual Studio IIS 是否正在重新加载整个项目。

      解决问题的建议:

      解决此问题的解决方案是javascript版本。

      1. 使用不同的名称
      2. 确保用户将收到新版javascript的一种方法是对文件名进行版本控制。 您可以将version数字连接到javascript,而不是仅使用名称。

        示例:

        www.example.com/script.8238823.js
        www.example.com/script.3434342.js
        

        此网址代表不同的路径,浏览器将更新。

        1. 使用查询字符串
        2. 另一种方法是使用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中使用的文件名”)不应该维持缓存。