清除 appEngine Flex 静态文件缓存

2024-03-20

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

配置为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

假设您的应用程序是提供静态文件 https://cloud.google.com/appengine/docs/flexible/nodejs/serving-static-files那么服务器发送的缓存参数由您的应用程序代码控制。这意味着一旦您部署带有更新参数的新版本,服务器将发送更新的值。

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

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

为了防止将来发生此类情况,您可能需要选择较短的缓存过期时间或使用一些缓存清除技术,例如this one https://stackoverflow.com/a/1922924/4495081.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

清除 appEngine Flex 静态文件缓存 的相关文章

随机推荐

  • Task.Factory.StartNew 与 Task.Factory.FromAsync

    假设我们有一个 I O 绑定方法 例如进行数据库调用的方法 该方法可以同步和异步运行 那是 Sync IOMethod Async BeginIOMethod EndIOMethod 那么当我们以如下所示的不同方式执行该方法时 在资源利用率
  • 非平凡可复制类型的 C++ 值表示

    C 标准的当前草案 2019 年 3 月 有以下段落 basic types p 4 强调我的 T 类型对象的对象表示是 T 类型对象占用的 N 个 unsigned char 对象的序列 其中 N 等于 sizeof T T 类型对象的值
  • 在 JavaScript 块上使用 HTML 注释仍然有意义吗?

    过去 人们习惯将 HTML 注释标签包裹在 JavaScript 块周围 以防止 旧 浏览器显示脚本 即使 Lynx 足够聪明 可以忽略 JavaScript 那么为什么有些人仍然这样做呢 这些天有什么正当理由吗 编辑 我确实遇到过一种情况
  • 检查是否可以安全地评估符号

    我有一根绳子x 我觉得x是某个类型的子类型的字符串表示形式Number 例如 x可能会取值 Float64 我可以使用以下方法检查这一点 eval parse x lt Number 然而 有可能x包含一些危险的东西 比如一些变体 rm s
  • textFieldDidBeginEditing:没有被调用

    我从下面得到了代码this https stackoverflow com questions 1247113 iphone keyboard covers uitextfield所以问题 当我开始编辑时 我试图向上滑动文本字段 因为否则它
  • MySQL INT 含义

    我想知道如果我采用值为 8 的 INT 这是否意味着我只能从 1 到 99999999 或从 1 到 4294967295 UNSIGNED 该文档似乎对此非常清楚 数字类型属性 MySQL 支持选择性指定显示的扩展 基关键字后面的括号中的
  • CSRF - 仅在第一次登录

    当我在服务器上部署我的应用程序时 第一次我可以毫无问题地登录 但是当我注销时 我在注销发布请求中收到 403 Forbidden 然后我无法成功登录 因为我在登录请求上收到 403 错误 Ctrl F5 尝试再次登录 它可以工作 但只能一次
  • .NET 单委托与多播委托[重复]

    这个问题在这里已经有答案了 我深入阅读了一些有关委托的内容 令人困惑的是具有一种方法的委托可能与多播委托不同 然而 通过反射 您可以清楚地看到 即使只有一个方法 委托也确实派生自MulticastDelegate 并不是立即地源自于Dele
  • 在java中获取两个日期之间的天数[重复]

    这个问题在这里已经有答案了 您好 有两个日期格式的日期 如何获得两者之间的天数差异 Date date1 Date date2 int numberDays 建议使用 JodaTime API 来处理日期 import java util
  • 跳过 Laravel 的 FormRequest 验证

    我最近添加了已被攻击 https github com valorin pwned validator到我的表单请求类来检查破解的密码 鉴于这会进行外部 API 调用 有没有办法让我在测试期间完全跳过此验证规则或 FormRequest 类
  • catch 和finally 中抛出异常。 CLR 行为与 try-catch 块[重复]

    这个问题在这里已经有答案了 我编写了简单的 C 控制台应用程序 class Mystery static void Main string args MakeMess private static void MakeMess try Sys
  • 自定义地图类型:重复地图和标记。如何向地图添加填充?

    使用 Google Maps API v3 我为虚构的游戏世界创建了自定义地图类型 默认情况下 地图 甚至自定义地图类型 都会水平重复 见下图 Larger Image here https i stack imgur com 6cPuZ
  • 当有新版本可用时,Android 以编程方式更新应用程序

    在我的应用程序中 我想检查应用程序商店中是否有我的应用程序的任何更新版本 如果有的话 那么必须通过警报消息通知用户 如果他 她选择升级 我想更新新版本 我想通过我的应用程序完成这一切 这可能吗 我有同样的问题 但已通过 JSOUP 库解决
  • 如何让 nginx/gunicorn 使用结构化日志记录?

    我目前看到 172 19 0 1 09 Feb 2018 07 00 32 0000 GET ping HTTP 1 1 200 1 curl 7 47 0 在我的日志中 但我使用像这样的结构化日志记录 https stackoverflo
  • 防止桌子缠绕

    当表格位于外部表格单元格内部时 如何防止表格换行 看看我的问题底部的简化示例 我的 aspx tablerow tr td align left valign top br td tr
  • 使用 DropzoneJS 时获取文件内容

    我真的很喜欢 DropZoneJS 组件 目前正在将它包装在 EmberJS 组件中 您可以看到演示在这里 https ember cli dropzonejs firebaseapp com 无论如何 包装器工作得很好 但我想监听 Dro
  • `raise "foo"` 和 `raise Exception.new("foo")` 有什么区别?

    两者之间有什么区别 技术 哲学 概念或其他方面 raise foo and raise Exception new foo 从技术上讲 第一个会引发 RuntimeError 消息设置为 foo 第二个引发异常 消息设置为 foo 实际上
  • 通过 RPostgreSQL 将表从 R 导出到 PostgreSQL

    我在用RPostgreSQL我已经完成了一些过程 并且在 R 中得到了一个表 我想将该表从 R 放入 PostgreSQL 中 以便进一步分析 我将使用 PostgreSQL 代码 问题是 当我在 R 中有一个 PostgreSQL 中不存
  • 如何使用 preg_match_all() 获取子组匹配的所有捕获? [复制]

    这个问题在这里已经有答案了 更新 注意 我想我可能正在寻找的是得到捕获一组 https stackoverflow com questions 6571106 can you retrieve multiple regex matches
  • 清除 appEngine Flex 静态文件缓存

    我在我的服务器上设置了 1 年的缓存控制 如何对 AppEngine 说 清楚 从服务器获取新版本 配置为Flex自定义环境 runtime custom env flex env variables writecontrolEnv pro