部署时未更新CSS文件(Google AppEngine)

And*_*son 25 google-app-engine caching google-cloud-platform

我推出了我的网站的新版本,但现在CSS和静态图像没有正确部署.

这是混乱的页面:http://www.gaiagps.com

Appengine显示最新版本是正确的:http://1.latest.gaiagps.appspot.com/

有帮助吗?

kam*_*ens 28

我之前在App Engine上看过这个,即使在使用缓存破坏查询参数时也是如此/stylesheets/default.css?{{ App.Version }}.

这是我的(未经证实的)理论:

  1. 您通过部署或更改新版本来推送新版本default.
  2. 此更新正在传播到运行您的应用程序的所有GAE实例...
  3. ...有人打你的网站.
  4. 静态资源请求default.css{{ App.Version }}将发送到谷歌的CDN,而CDN还没有.
  5. 在针对所有实例执行步骤#2的传播之前,Google的CDN要求GAE提供资源.
  6. 如果你运气不好,GAE会从运行旧版本的实例中提供资源......
  7. ...现在作为权威的"新"版本在Google的CDN中缓存.

如果发生这种情况(如果发生了这种情况),我可以确认没有任何缓存破坏浏览器的工作量会有所帮助.Google CDN服务器的版本错误.

修复:我发现修复此问题的唯一方法是部署另一个版本.您不会再次冒这种风险(如果您在竞争条件后没有进行任何CSS更改),因为即使出现竞争条件,可能是您第一次更新是在部署第二次更新时完成的,因此无论如何,所有实例都将提供正确的版本.