Google 应用引擎 - 如何禁用缓存
Google app engine - how to disable the cache
所以一些上下文:
我在 google 应用程序引擎上有一个 nodeJS api 运行。默认情况下,应用引擎会缓存我所有的获取请求 10 分钟。
我正在为我的 API 使用 cloudflare,因为这允许我在需要时从缓存中删除特定项目。
您可以想象这会导致一些问题,因为我的 CF 缓存已正确清除,但应用引擎不断返回旧数据。
根据文档,您可以在 app.yaml 文件中设置 default_expiration,但将其设置为 0 或 0s 没有任何区别,并且 google 会继续缓存我的回复。
看来,您也无法从 google 中获取未缓存的内容。
现在我的明显问题是:有什么方法可以完全忽略这个缓存吗?最好不必将我的整个 API 响应设置为私有 0s 缓存。
google 强行将缓存强加给我,这让我非常恼火,提供了关于整个问题的非常模糊的文档。
您似乎指的是静态缓存(根据您的 link)。尝试缓存突发技术,例如向 url 添加查询参数,例如
https://<url>/?{{APP_VERSION_ID}}
其中 APP_VERSION_ID 是您部署的应用程序的最新版本。这样,每次重新部署您的应用程序时,APP_VERSION_ID 都会更改,并且始终会加载最新版本的静态文件
您可以配置您的 app.yaml
来定义缓存期。
如果您使用default_expiration,这将为应用程序的所有静态文件处理程序设置全局默认缓存期。如果省略,生产服务器默认设置过期时间为10分钟。
要为各个处理程序设置特定的到期时间,请在 app.yaml
文件的处理程序元素中指定 expiration 元素。您可以更改 Web 代理和浏览器应缓存此处理程序提供的静态文件的持续时间。
default_expiration: "4d 5h"
handlers:
- url: /stylesheets
static_dir: stylesheets
expiration: "0d 0h"
所以一些上下文:
我在 google 应用程序引擎上有一个 nodeJS api 运行。默认情况下,应用引擎会缓存我所有的获取请求 10 分钟。
我正在为我的 API 使用 cloudflare,因为这允许我在需要时从缓存中删除特定项目。
您可以想象这会导致一些问题,因为我的 CF 缓存已正确清除,但应用引擎不断返回旧数据。
根据文档,您可以在 app.yaml 文件中设置 default_expiration,但将其设置为 0 或 0s 没有任何区别,并且 google 会继续缓存我的回复。
看来,您也无法从 google 中获取未缓存的内容。
现在我的明显问题是:有什么方法可以完全忽略这个缓存吗?最好不必将我的整个 API 响应设置为私有 0s 缓存。
google 强行将缓存强加给我,这让我非常恼火,提供了关于整个问题的非常模糊的文档。
您似乎指的是静态缓存(根据您的 link)。尝试缓存突发技术,例如向 url 添加查询参数,例如
https://<url>/?{{APP_VERSION_ID}}
其中 APP_VERSION_ID 是您部署的应用程序的最新版本。这样,每次重新部署您的应用程序时,APP_VERSION_ID 都会更改,并且始终会加载最新版本的静态文件
您可以配置您的 app.yaml
来定义缓存期。
如果您使用default_expiration,这将为应用程序的所有静态文件处理程序设置全局默认缓存期。如果省略,生产服务器默认设置过期时间为10分钟。
要为各个处理程序设置特定的到期时间,请在 app.yaml
文件的处理程序元素中指定 expiration 元素。您可以更改 Web 代理和浏览器应缓存此处理程序提供的静态文件的持续时间。
default_expiration: "4d 5h"
handlers:
- url: /stylesheets
static_dir: stylesheets
expiration: "0d 0h"