即使 url 是新的,浏览器也不会下载更新的 css、js 等
Posted
技术标签:
【中文标题】即使 url 是新的,浏览器也不会下载更新的 css、js 等【英文标题】:Browser is not downloading updated css, js etc even when url is new 【发布时间】: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。我必须进行硬刷新
你看过this***页面了吗?
【参考方案1】:
我假设浏览器没有更新,因为它的缓存中已经有信息。当有人更新不直接在 Web 文档内部的 CSS 并且从另一个文件加载时,许多浏览器都会出现此问题。要完全重置页面的信息,您可以使用 Control + Shift + R 进行硬重置。
【讨论】:
请仔细阅读问题。您不能要求您的用户进行硬刷新,以及他们如何知道我发布了新版本?以上是关于即使 url 是新的,浏览器也不会下载更新的 css、js 等的主要内容,如果未能解决你的问题,请参考以下文章
Gridsome 项目托管在 netlify 上。点击时,即使 URL 更新,页面也不会加载
Android App Bundle - 我的密钥不被接受,即使它是新的