Google App Engine:default_expiration不被Cache-Control:no-cache覆盖。

问题描述 投票:0回答:1

你好,我想把 "一年 "的缓存在所有的文件,除了 ìndex.html 我想 Cache-Control: no-cache但我得到的结果是:我希望最后一行能覆盖掉这个 "我 "字。默认期限 但我得到。

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.... 两者同时进行 你有一个想法,如何有只有第一个头?

google-app-engine cache-control no-cache
1个回答
1
投票

这其实是目前的一个预期行为。

1) 如果你设置default_expiration: 0,并且在处理程序的http_headers中设置了Cache-Control: no-cache,那么就会设置下面的headers。

Cache-Control: no-cache, must-revalidateexpires: Fri, 01 Jan 1990 00:00:00 GMT。

2) 如果default_expiration是默认的(10m),或者在你的案例中设置了一个特定的值,'365d',并且你在每个处理程序的基础上覆盖了expiration,那么expiration.0的处理程序也将以10m或者设置的值缓存。0的处理程序也会被服务于10m或设置缓存的值。所以,你得到的输出其实是目前的预期输出。

我同意2)可能会出乎意料,同样的问题也已经在App Engine团队上提出来了。这条 而在 本期链接. 它目前不被认为是一个错误,但内部功能请求已提交给App Engine团队进行必要的修改。我建议你在问题链接上做个书签,以便了解修复的最新情况,因为目前还没有实施的时间表。

© www.soinside.com 2019 - 2024. All rights reserved.