【问题标题】:Hosting a static website on Google App Engine - but not update the images when deploy again在 Google App Engine 上托管静态网站 - 但再次部署时不更新图像
【发布时间】:2019-07-22 02:07:48
【问题描述】:

我在 Google App Engine 上部署我的单页,当第一次部署时,一切都很好,但是现在当我在我的网站上对图片进行一些更改时,这些图片没有更新或没有进行更改在我的网站上。我看到不要上传新闻图片。 该网站仅在第一次部署时才能正常工作,现在在我的 html 中进行一些更改(工作正常)但图像更改不起作用时。

我按照谷歌云平台上的手册,对存储和yaml文件进行了一些更改,但没有任何效果。

我的文件 app.yaml

运行时:python27 api_version: 1 线程安全:真 default_expiration: "15d"

处理程序: - 网址:/ 静态文件:www/index.html 上传:www/index.html

  • 网址:/(.) 静态文件:www/\1 上传:www/(.)

我的页面已上传,工作正常,但有些图片回答 404 错误,因为更改图片,现在我不知道升级这些图片。

【问题讨论】:

  • Web 浏览器缓存图像。要强制从您的站点重新加载图像,请按 CTRL-F5。如果您对静态内容使用相同的文件名,浏览器将不会知道您更改了文件。您可以使用对象缓存标头来控制它。

标签: google-app-engine web deployment google-cloud-platform


【解决方案1】:

您应该记住,当您在 Google App Engine 应用程序中应用静态文件的更改时,这些更改可能由于缓存而无法使用。即使您可以尝试清除浏览器缓存,也无法将其从中间缓存中清除。在"app.yaml Reference" in Google App Engine documentation 中可以看到,即使重新部署新版本的应用,也要等到过期时间(一般默认10分钟)。

不过,您可以通过在应用程序存储桶中添加生命周期规则来强制缩短此过期时间。 我一步一步给你写下怎么做:

  1. 在您的 Google Cloud Console 中,转到 存储 -> 浏览器
  2. 点击您的应用程序桶的生命周期
  3. 删除所有规则(如果有)
  4. 添加新规则。选择 Newer Versions 并将其设置为 1
  5. 点击继续
  6. 选择删除并点击继续
  7. 保存您的新规则

一旦你这样做了,changes might take effect within 24 hours,虽然我尝试了不到 3 分钟。

希望对您有所帮助!

【讨论】:

  • 这是一个很好的答案。我要补充一点,最好的方法是在文件名中使用版本号。对静态对象的更新成为缓存中的新文件。
猜你喜欢
  • 2021-07-23
  • 2018-03-23
  • 2021-09-13
  • 2010-10-19
  • 2023-03-23
  • 2016-01-18
  • 1970-01-01
  • 1970-01-01
  • 2010-10-23
相关资源
最近更新 更多