gpt4 book ai didi

google-app-engine - 有什么方法可以强制重置 AppEngine 上所有缓存的静态文件?

转载 作者:太空宇宙 更新时间:2023-11-03 15:18:31 24 4
gpt4 key购买 nike

我遇到了一个已知的 AppEngine 问题,如果我转到我的应用程序的特定 URL,则会缓存错误的静态内容,但如果我附加一个 ?foo 参数来破坏缓存,则会显示正确的静态内容,并且 VERSION .myapp.appspot.com 也可以。

有没有办法让正确的内容显示在未修改的 URL 上?

我很乐意删除应用程序并恢复它或进行任何激烈的操作。该应用程序未上线,但我需要它在几个小时内上线。使这些 URLS 正常工作以便与 AppEngine 应用程序通信的移动应用程序获取正确数据的任何方法。

编辑

curl 标题,我看到了:

HTTP/1.1 200 OK
ETag: "ZN9VxQ"
Date: Tue, 14 Aug 2012 02:00:58 GMT
Expires: Wed, 15 Aug 2012 02:00:58 GMT
Content-Type: text/html
Server: Google Frontend
Cache-Control: public, max-age=86400
Age: 34623
Transfer-Encoding: chunked

我还要再浪费 50,000 秒吗?无论如何要缩短它?

编辑评论:

在 app.yaml 中,我有这个处理程序:

- url: /static
static_dir: static
expiration: 1s

我现在尝试删除过期时间:

- url: /static
static_dir: static

我根据文档将其添加到 app.yaml 的顶部:

default_expiration: "1m"

此外,删除文件不会使它们在我部署时消失。

最佳答案

有一种方法可以缩短您的应用在 Google Cloud 上缓存的静态文件的过期时间。

前往您的 Google Cloud Console并打开你的项目。在左侧汉堡包菜单下,前往存储 -> 浏览器。在那里您应该至少找到一个 Bucket:your-project-name.appspot.com。在“生命周期”列下,单击与 your-project-name.appspot.com 相关的链接。删除所有现有规则,因为它们可能与您现在要创建的规则冲突。

单击“添加规则”按钮创建新规则。对于对象条件,选择“较新版本”选项并将其设置为 1。不要忘记单击“继续”按钮。对于操作,选择“删除”并单击“继续”按钮。保存您的新规则。

这条新规则最多需要 24 小时才能生效,但至少对于我的项目而言,它只用了几分钟。一旦启动并运行,您的应用程序在 your-project-name.appspot.com 下提供的文件版本将始终是最新部署的,从而解决了问题。此外,如果您经常编辑静态文件,则应从与这些静态文件相关的处理程序中删除所有 expiration 元素,并从 app.yaml 文件中删除 default_expiration 元素,该元素将有助于避免其他服务器的意外缓存。

关于google-app-engine - 有什么方法可以强制重置 AppEngine 上所有缓存的静态文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11949367/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com