我正在为 node.js 应用程序使用 Google App Engine 标准环境。
我有一个以public
我的静态文件命名的文件夹。这包含文件,例如chunk-XIAWB55V.js
. 我希望这些文件被大量缓存,因为如果内容发生变化,散列文件名会发生变化。
我在我的文件夹中添加了一个静态文件处理程序,app.yaml
以将请求重定向/static
到我的public
文件夹,并通过检查日志确认它有效:对例如https://<redacted>.com/static/javascript/build/prod/chunk-Z4M5HAC7.js
的请求在请求日志中并且没有命中我的应用程序。文档暗示应应用 10 分钟的默认缓存。但是,浏览器开发工具显示实际的标头是,并且每次都发送cache-control: no-cache, must-revalidate
一个请求(得到 a )。304
我曾尝试向expiration
我添加一个参数,app.yaml
但它没有任何区别。我也尝试设置标题,app.yaml
但没有任何区别。我当前的文件如下所示:
handlers:
- url: /static
static_dir: public
secure: always
expiration: "1d"
http_headers:
Cache-Control: public
Vary: Accept-Encoding
- url: /.*
secure: always
script: auto
我仍然收到如下回复:
我在 App Engine 前面使用 Identity Aware Proxy,我从例如这个问题中知道 IAP 和缓存可能混合得不好,但这似乎只是指可能的 IAP 绕过。我的静态文件不敏感,我很乐意接受这种风险。