【发布时间】:2020-07-14 09:42:07
【问题描述】:
我在 asp.net mvc 4 中开发了一个 Web 应用程序,我在其中提供一些资源文件,例如 css、js、图像等。
为了始终提供更新的文件,我在查询字符串中附加了一个随机字符串。当我发布我的应用程序时,该查询字符串值会发生变化。因此,每个发布活动都会更改该字符串。
但浏览器即使更改了 URL 也不会下载文件。浏览器第一次下载文件并始终从缓存副本中提供服务。 下面是我的代码。
<script src="~/Content/js/userdefined/dashboard.js?t=@Constants.RandomString" defer></script>
public static class Constants
{
public static readonly string RandomString = Guid.NewGuid().ToString().ToLower();
}
因此,每次发布应用程序时,它都会生成一个按预期工作的新字符串。
任何人都可以帮助解决这个问题,比如为什么即使 url 发生更改,浏览器也不会下载更新的文件?
【问题讨论】:
-
您是否尝试通过将 IIS manager-> configuration manager->system.webserver->cache controlmode 设置为 DisableCache 来禁用缓存
-
我在应用服务 Web 应用中的 MS Azure 上部署了应用程序。如何禁用它?
-
我会尝试用
@Guid.NewGuid()替换@Constants.RandomString,这应该会在每次调用时生成新的随机字符串,以确保加载正确的js。如果可行,请确保在每次发布后更新静态@Constants.RandomString,但情况可能并非如此(即,如果发布不触及 web.config 或 \bin,静态实例将相同)。 -
@user2316116 事实并非如此。我已经检查了每个发布,Constants.RandomString 生成新字符串,但仍然没有自动下载 js。我必须进行硬刷新
-
你看过thisstackoverflow页面了吗?
标签: html asp.net iis browser-cache