【问题标题】:ASP.NET Browser Cache causing issuesASP.NET 浏览器缓存导致问题
【发布时间】:2013-03-10 23:23:41
【问题描述】:

我一直在寻找这个问题的答案,但我不确定我问的是否正确。

我正在寻找开发人员在这种情况下会做什么:

我正在开发一个 ASP.NET C# 应用程序。我有 CSS 和 SCRIPT 文件,我正在使用 jQuery。我将我的应用程序安装到 Web 服务器(或者我让我的客户安装它们)。如果我通过添加一些新的 jQuery 或其他东西对我的脚本文件进行了任何更改,我的客户在我进行更新后不会得到这种效果。我认为原因是他们的浏览器将文件缓存在本地计算机上,他们现在确实从服务器下载了新文件。

在我的开发环境中,我在关闭浏览器时清除缓存,在 IE 上,我在选项中告诉它始终从服务器加载。这样在开发时我从来没有缓存过数据。

确保如果我进行更改,这些文件在我进行更新后在客户端计算机上得到刷新的最佳做法是什么?代码中有什么我可以做的吗?

我真的不想更改文件名并更新我所有的脚本引用。

谢谢, 科里

【问题讨论】:

    标签: c# asp.net browser-cache


    【解决方案1】:

    传统的方法是在对 css/script 文件路径的引用末尾附加一个查询字符串参数。例如,如果您将内部版本号作为查询字符串附加,则软件的每个版本都会对相关资源提出自己的请求。

    【讨论】:

    • 哦...我一直在每个页面 URL 的末尾添加一个随机数。所以你在资源的 URL 末尾说了什么?
    • 是的 - 当页面加载时,它将单独请求使用 link 连接的脚本和 css 文件。如果你将你的随机数附加到你应该是好的。
    • 关于随机数或日期的问题是它从不缓存脚本/css文件。如果您在引用 url 的末尾添加版本号(例如 /script/myscript.js?v=2),只要 v 等于 2,浏览器就会缓存文件。
    • 太棒了!我只是在资源的末尾添加了一个新的 Guid ......这样我每次都强制问题下载该文件。我将不得不看看这样做是否需要太多资源。
    • 我建议遵循Onur TOPAL 的建议,使用简单的v=2 后缀以保持简单
    猜你喜欢
    • 1970-01-01
    • 2015-08-05
    • 2011-10-14
    • 2011-08-18
    • 1970-01-01
    • 2017-08-23
    • 2015-03-02
    • 1970-01-01
    相关资源
    最近更新 更多