我遇到一个非常奇怪的情况,仅当通过其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显示几乎相同的结果。 dig nates-app.now.sh
会在以下“答案”部分中显示:
;; 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和相关资源?