0

您好,我想在所有文件上放置“一年”的缓存,除了ìndex.html我想要Cache-Control: no-cache 但我得到:我希望最后一行覆盖default_expiration但我得到:

cache-control: no-cache
cache-control: public, max-age=31536000

我的app.yaml

runtime: nodejs12
default_expiration: '365d'
env_variables:
  environment: '--prod'
handlers:
    - url: /
    static_files: myproject/index.html
    upload: myproject/index.html
    http_headers:
      Cache-Control: no-cache

在 index.html....两者同时你知道如何只有第一个标题吗?

4

1 回答 1

1

这实际上是目前的预期行为。

1) 如果在处理程序的 http_headers 中设置 default_expiration: 0 和 Cache-Control: no-cache ,则将设置以下标头:

缓存控制:无缓存,必须重新验证过期:1990 年 1 月 1 日星期五 00:00:00 GMT

2)如果 default_expiration 是默认值(10m),或者在您的案例中设置了特定值,“365d”并且您在每个处理程序的基础上覆盖过期,那么过期处理程序:0 也将提供 10m 或该值设置缓存。所以,你得到的输出实际上是此刻的预期输出。

我同意 2) 可能是出乎意料的,App Engine 团队已在此线程此问题链接上提出了同样的担忧。目前不认为这是一个错误,但内部功能请求已提交给 App Engine 团队进行必要的修改。我建议您将问题链接添加为书签以获取有关修复的更新,因为目前没有实施的 ETA。

于 2020-06-08T14:47:00.037 回答