我有一个角度js应用程序,其主要容器页面" index.html"每个版本都会更新。它托管在我使用Go构建的app-engine中。服务器端提供直接提供的html视图和静态内容以及一个安静的API。
这一切都很有效,直到我推新版本然后我必须重新加载页面以避免获得304.
我的app.yaml文件现在非常基本:
handlers:
- url: /.*
script: _go_app
我还没有设置任何缓存策略,所以我理解app引擎默认缓存静态文件10分钟。
发生了什么?
答案 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
我会确保添加所有其他静态文件夹。