我有一个非常奇怪的情况,我的应用程序的陈旧版本仅在通过其 CNAME 别名访问它时才被提供。
该应用程序是使用 Webpack 构建并托管在 Zeit NOW 上的静态节点应用程序。如果我使用直接的 Zeit URL 访问它,我将获得最新版本和正确的 JS 资产:
https://nates-app.now.sh/index.html -> https://nates-app.now.sh/client/index.eb53e753.js (current)
在 AWS Route53 中,我将 CNAME 设置为别名www.nates-app.com
为https://nates-app.now.sh
. 但是,将我的浏览器指向https://www.nates-app.com
一个过时的index.html
. 更奇怪的是,陈旧的 index.html 页面需要陈旧的 JS 和 CSS 资产,这些资产也被成功返回:
https://www.nates-app.com/index.html -> https://www.nates-app.com/client/index.f64812dd.js (stale)
旧版本已超过 48 小时。
挖掘显示几乎相同的结果。dig nates-app.now.sh
导致以下 ANSWER 部分:
;; ANSWER SECTION:
nates-app.now.sh. 60 IN A 1.2.3.4
nates-app.now.sh. 60 IN A 4.3.2.1
dig www.nates-app.com
产生相同的输出,只有一个(预期的)添加显示该ANSWER
部分中的 CNAME:
;; ANSWER SECTION:
www.nates-app.com. 300 IN CNAME https://nates-app.now.sh.
nates-app.now.sh. 60 IN A 1.2.3.4
nates-app.now.sh. 60 IN A 4.3.2.1
我没有将 AWS Cloudfront 或任何其他 CDN 用于静态资产。
我显然已经清除了浏览器的缓存,甚至关闭和打开了我的 VPN。一位同事在从不同的 ISP 访问 Internet 时看到了同样的情况。
那么,万维网中的什么可以缓存我网站的 HTML 和随附资产的(非常)旧版本?