【发布时间】:2020-09-22 08:23:33
【问题描述】:
我有一个使用来自aurelia-fetch-client v1.8.2 的HttpFetch 的Aurelia 应用程序。我遇到的问题是 Chrome 浏览器在我的部署之间缓存了一些 GET 请求 URL。
例如一个特定的请求会发送到.../api/v1/users,但后来更改为.../api/v1/users?somequerystring=value,但是客户报告说旧的URL 仍在使用中。它发生在大约 3/4 的用户身上。出于某种原因,我和一小部分用户正常工作,并使用更新的GET URL 发出请求。
我以前体验过响应缓存,后来我在每个GET URL 请求中添加了'?cacheBust=' + new Date().getMilliseconds() 以确保唯一性,但是这种新型缓存对我来说并不熟悉。
值得注意的是,当用户看到更新的前端页面时,这可能是一些 JS 文件缓存。
打开开发者控制台并执行Empty Cache and Hard Reload 显然是可行的,但我可以预期,每当我更新请求 URL 时,我的用户都需要这样做。
有什么建议吗?
【问题讨论】:
-
你遇到的好问题。在幕后,它仍然是您在那里提到的相同技术:通过查询参数进行缓存突发。也许如果你愿意,可以创建一个 PR 来添加一个能够爆缓存的配置?
-
您确定缓存是在
get请求url上完成的吗?您的应用程序代码更有可能缓存在客户端浏览器中。您应该配置您的服务器以服务index.html页面而不进行缓存。然后 - 每当您更新代码时。所有用户都将获得新版本。 (webpack、require 等确实将缓存破坏机制应用于他们创建的包)
标签: google-chrome caching aurelia aurelia-fetch-client