【问题标题】:unable to set cache expiration on in app.yaml for a python app无法在 app.yaml 中为 python 应用设置缓存过期
【发布时间】:2014-06-10 23:15:43
【问题描述】:

在我的 GAE 应用程序中,我提供如下静态内容(这些是我在 app.yaml 文件中的条目):

handlers:
- url: /css
  static_dir: static/css
  expiration: "10m"

- url: /js
  static_dir: static/js
  expiration: "10m"

尽管此处提供了信息:https://developers.google.com/appengine/docs/python/config/appconfig#expiration 无论我使用开发服务器还是上传我的应用程序,内容都不会缓存在浏览器中。

我正在使用 Chrome,请求标头是:

cache-control:max-age=0

响应头是:

cache-control:no-cache, must-revalidate
pragma:no-cache
server:Google Frontend
status:304 Not Modified

根据我能找到的一些答案,我在登录和退出我的谷歌管理员帐户时都对此进行了测试,没有任何变化。

对此的任何帮助将不胜感激。非常感谢!

我在退出管理员帐户时收到的响应标头:

date:Fri, 25 Apr 2014 09:54:44 GMT
etag:"lhoIow"
server:Google Frontend
status:304 Not Modified
version:HTTP/1.1

【问题讨论】:

  • 对于当前 GAE 项目中使用 default_expiration: "30d" 的静态内容,我同时看到了 Cache-Control: public, max-age=2592000Expires: Sun, 25 May 2014 09:54:57 GMT(例如,距“现在”30 天)。某些东西无法获取您的 app.yaml 文件。
  • 非常感谢Martijn!您的提示为我指明了正确的方向,似乎我设法解决了这个问题。非常感谢!

标签: python google-app-engine caching


【解决方案1】:

根据上面 Martijn 的提示,我将 app.yaml 中的过期值更改为:

handlers:

- url: /css

  static_dir: static/css

  expiration: "0d 10m"



- url: /js

  static_dir: static/js

  expiration: "0d 10m"

现在一切都按预期工作,我得到以下标题作为响应:

cache-control:public, max-age=600
content-encoding:gzip

现在一切似乎都按预期工作了。

【讨论】:

    【解决方案2】:

    GAE 应该可以在 10m 值下正常工作。 这很可能是因为您使用 Google 管理员帐户登录。 GAE 为此类帐户返回 no-cache。 尝试以隐身模式打开同一页面会返回正确的缓存过期时间。

    默认情况下,GAE 将缓存设置为 10 分钟,因此即使您没有设置任何到期时间 - 您应该会看到 10 分钟而不是无缓存。

    【讨论】:

      猜你喜欢
      • 2011-10-31
      • 2021-12-17
      • 2012-03-18
      • 2015-09-03
      • 2013-11-20
      • 1970-01-01
      • 2021-04-02
      • 2022-01-05
      • 2011-12-27
      相关资源
      最近更新 更多