即使在html页面被修改之后,应用程序引擎返回304

时间:2014-11-05 03:40:09

标签: google-app-engine http go

我有一个角度js应用程序,其主要容器页面" index.html"每个版本都会更新。它托管在我使用Go构建的app-engine中。服务器端提供直接提供的html视图和静态内容以及一个安静的API。

这一切都很有效,直到我推新版本然后我必须重新加载页面以避免获得304.

我的app.yaml文件现在非常基本:

handlers:
- url: /.*
  script: _go_app

我还没有设置任何缓存策略,所以我理解app引擎默认缓存静态文件10分钟。

发生了什么?

1 个答案:

答案 0 :(得分:0)

我相信我找到了答案。

有两件事困扰着我:

首先,我知道我不能像以前那样有效地处理静态文件,这是一项我还没有完成的工作,但静态文件是通过路由代码传递的。 main go脚本而不是在app.yaml

中声明

使用后一种方法可以让应用引擎完成工作而不是我的脚本,并希望节省一些宝贵的处理器周期。

其次,当路径为" /"时,我还不确定如何提供index.html,它只是正常工作。我知道各种Web服务器(Apache,IIS等)都有一个默认页面,应用程序引擎似乎也以同样的方式工作。

因此,当我决定每个请求都不需要任何动态脚本时,我只需使用以下代码提供它:

http.ServeFile(w, r, r.URL.Path[1:])

这神奇地转过来了#34; /"进入" /index.html"对我来说,似乎有上面描述的缓存错误。我将与Go社区一起讨论这个问题。

至于修复,将页面作为静态文件添加到app.yaml使这项工作:

- url: /
  static_files: index.html
  upload: index.html

我会确保添加所有其他静态文件夹。