谷歌应用引擎中的缓存控制

sbo*_*ire 6 python google-app-engine

我正在尝试优化Google应用引擎上的页面服务时间,但我正在努力获得我想要的效果.

在我的app.yaml中,我使用了以下指令:

handlers:
- url: /assets
  static_dir: assets
  expiration: 7d
Run Code Online (Sandbox Code Playgroud)

在资产文件夹下,我有我的所有图像,css和js.通过使用7d到期,我本来希望浏览器使用本地缓存文件,而不是来我的应用程序7天.

虽然,在我的资产的响应标题中,我得到以下内容:

Cache-Control:public, max-age=604800
Cache-Control:no-cache, must-revalidate
Run Code Online (Sandbox Code Playgroud)

我理解,使用这些标头,浏览器将在发布缓存版本之前检查我的应用程序是否已更改文件.(我可以有效地看到一堆304对应于我在资产文件夹下的文件,用于刷新和简单页面加载).

Google应用引擎中是否有一种方法可以配置缓存行为,以便浏览器不会在7到期(在简单的页面加载时)恢复这些文件,如过期时所指定的那样?(即从缓存控制头中删除"no-cache")

PS我不想在我的应用程序上启用PageSpeed.我希望完全控制所服务的html.

Arj*_*jen 6

您是否有机会使用管理员帐户登录?AppEngine 添加了一些关于管理员成本的私有标头并禁用缓存,因为该数据是私有的。注销为我解决了这个问题。


Law*_*Mok 0

我没有使用过期指令,GAE 发送以下内容作为默认缓存设置:

缓存控制:公共,最大年龄=600

您可以尝试删除过期:7d 并查看 GAE 是否仅发送 1 个缓存控制标头?