2012-08-14 30 views
5

我正在运行一个已知的AppEngine问题,如果我为我的应用程序访问特定的URL,则会缓存错误的静态内容,但如果我追加一个?foo参数来缓存缓存和VERSION,则会显示正确的静态内容。 myapp.appspot.com也可以。强制重置AppEngine上所有缓存的静态文件的方法?

有没有什么方法可以让未经修改的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 

我是在该区的另一条5秒了吗?无论如何缩短呢?

编辑注释:

app.yaml中,我有这样的处理程序:

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

我现在已经尝试删除过期:

- url: /static 
    static_dir: static 

我加入这个到基于文档的app.yaml的顶部:

default_expiration: "1m" 

另外,删除文件并不会在部署时消失。

+0

您使用的是自定义域名。如果是这样,您将需要使用缓存清除技术,因为谷歌边缘缓存将会被踢入。 – 2012-08-14 10:00:52

+0

如果是这种情况,那么缓存持续多久?我不确定...我只是使用myapp.appspot.com,但是在这个问题正在进行之后,我的同事确实注册了一个域来重定向到URL ......那么重要吗? – 2012-08-14 10:04:02

+0

是否有可能在app.yaml中有某种处理程序将基址重定向到非缓存的静态url?如果我无法修改移动应用访问的网址,我可以做缓存清除吗? – 2012-08-14 10:07:32

回答

4

它取决于使用什么缓存控制。检查萤火虫和铬检查员,看看有什么到期日期设置。

如果您已将缓存控制设置为公开,则不会影响控件,因为文件在各种代理和服务器上缓存。

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