Google app engine 有没有办法强制重置AppEngine上所有缓存的静态文件?

Google app engine 有没有办法强制重置AppEngine上所有缓存的静态文件?,google-app-engine,caching,google-cloud-platform,Google App Engine,Caching,Google Cloud Platform,我遇到了一个已知的AppEngine问题,如果我转到我的应用程序的特定URL,就会缓存错误的静态内容,但是如果我附加?foo参数来破坏缓存,就会显示正确的静态内容,VERSION.myapp.appspot.com也可以工作 有没有办法让正确的内容显示在未修改的URL上 我会很高兴删除应用程序,并恢复它或任何激烈的。该应用程序不是实时的,但我需要它在几个小时内。任何可以让这些URL正常工作的东西都可以让移动应用程序与AppEngine应用程序对话,从而获得正确的数据 编辑 卷曲标题,我看到: H

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

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

我会很高兴删除应用程序,并恢复它或任何激烈的。该应用程序不是实时的,但我需要它在几个小时内。任何可以让这些URL正常工作的东西都可以让移动应用程序与AppEngine应用程序对话,从而获得正确的数据

编辑

卷曲标题,我看到:

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
我还要用软管冲洗50000秒吗?无论如何,要缩短它吗

编辑评论:

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

- url: /static
  static_dir: static
  expiration: 1s
我现在已尝试删除过期:

- url: /static
  static_dir: static
根据文档,我在app.yaml的顶部添加了以下内容:

default_expiration: "1m"

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

这取决于使用了什么缓存控制。检查firebug och chrome inspector并查看设置的有效期

如果您已将缓存控件设置为public,则无法影响该控件,因为文件会在一路上缓存在各种代理和服务器上


如果您使用cache control private,您应该能够重置浏览器缓存并恢复正常,但正如您所说,有时您会从Google的生产环境中获取错误的文件。我也有同样的问题。最快的解决方案是向加载的文件添加查询参数。

有一种方法可以缩短应用程序在谷歌云上缓存的静态文件的过期时间

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

通过单击“添加规则”按钮创建新规则。对于对象条件,选择“更新版本”选项并将其设置为1。别忘了点击“继续”按钮。对于操作,选择“删除”并单击“继续”按钮。保存新规则


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

您使用的是自定义域吗。如果是这样的话,你将需要使用缓存破坏技术,因为谷歌边缘缓存已经启动了。如果是这样的话,缓存会持续多久?我不确定。。。我只是在使用myapp.appspot.com,但在这个问题发生后,我的同事确实注册了一个域名以重定向到URL。。。这有关系吗?在app.yaml中是否可能有某种处理程序将基本URL重定向到非缓存的静态URL?我可以在不修改移动应用正在访问的URL的情况下进行缓存破坏吗?第一步是确定它是边缘缓存。在appspot和自定义域之间使用wget/curl比较结果。自定义URL实际上只有404,这有关系吗?