Html 即使url是新的,浏览器也不会下载更新的css、js等

Html 即使url是新的,浏览器也不会下载更新的css、js等,html,asp.net,iis,browser-cache,Html,Asp.net,Iis,Browser Cache,我在asp.NETMVC4中开发了一个web应用程序,其中我提供了一些资源文件,如css、js、图像等 为了始终提供更新的文件,我在查询字符串中添加了一个随机字符串。当我发布应用程序时,该查询字符串值会更改。因此,每个发布活动都会更改该字符串 但即使更改了URL,浏览器也不会下载文件。浏览器第一次下载文件,并始终从缓存副本提供服务。 下面是我的代码 <script src="~/Content/js/userdefined/dashboard.js?t=@Constants.RandomS

我在asp.NETMVC4中开发了一个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();
}

公共静态类常量
{
公共静态只读字符串RandomString=Guid.NewGuid().ToString().ToLower();
}
所以,每次发布应用程序时,它都会生成一个新字符串,该字符串按预期工作


有人能帮我解释一下,为什么浏览器在url更改时也不下载更新的文件?

我假设浏览器没有更新,因为它的缓存中已经有信息了。很多浏览器在有人更新CSS时都会遇到这个问题,CSS不是直接在web文档中,而是从另一个文件加载的。要完全重置页面信息,您可以执行Control+Shift+R进行硬重置。

您是否尝试通过将IIS管理器->配置管理器->system.webserver->缓存控制模式设置为DisableCache来禁用缓存我在MS Azure in-App Services web App上部署了应用程序。如何禁用它?我将尝试用
@Guid.NewGuid()
替换
@Constants.RandomString
,它将在每次调用时生成新的随机字符串,以确保加载正确的js。如果有效,请确保每次发布后都更新了static
@Constants.RandomString
,但情况可能并非如此(即,如果发布时不接触web.config或\bin,则静态实例将相同)。@user2316116情况并非如此。我已经检查了每次发布,Constants.RandomString会生成新字符串,但js不会自动下载。我必须努力复习,你已经看过stackoverflow页面了吗?请仔细阅读问题。您不能要求您的用户进行硬刷新,也不能要求他们知道我发布了一个新版本?