清除appEngine Flex静态文件缓存

时间:2018-12-14 13:47:03

标签: google-app-engine google-cloud-platform cache-control app.yaml

我在服务器上设置了1年的缓存控件。 如何对AppEngine说“清楚!”从服务器获取新版本?

enter image description here

配置为Flex自定义环境

runtime: custom
env: flex

env_variables:
    writecontrolEnv: 'prod'

handlers:
- url: /.*
  script: this field is required, but ignored

service: gateway-prod

automatic_scaling:
  min_num_instances: 1
  max_num_instances: 2

resources:
  cpu: 1
  memory_gb: 2
  disk_size_gb: 10

skip_files:
- node_modules/

network:
  instance_tag: gateway

1 个答案:

答案 0 :(得分:1)

假设您的应用程序是一个serving the static files,则服务器发送的缓存参数由您的应用程序代码控制。这意味着一旦您部署了带有更新参数的新版本,服务器将发送更新后的值。

但是问题在于缓存实际上是由客户端(或某些中间人网络设备)执行的,因此最终用户只有在达到(在您的情况下非常长的)缓存过期时间之前,才可以访问服务器。因此直到那时它才会看到更新。

您可以尝试清除浏览器的缓存,希望浏览器是进行缓存的浏览器。

为防止将来发生此类情况,您可能希望选择较短的缓存过期时间或使用诸如this one之类的某些缓存清除技术。