我不确定,Golang如何仅针对CSS
,js
和HTML
模板文件等静态文件利用浏览器缓存。
在Apache中使用.htaccess
,过去很容易,但我在golang
我想知道,我可以使用任何hack或方法来缓存静态文件,例如css
,js
不使用cloudflare - 我的应用无法使用cloudflare。
答案 0 :(得分:3)
浏览器缓存由服务器发送的标头控制。这样,它不依赖于特定安装的软件。
您需要发送标头Etag
和Cache-Control
。喜欢这个
func Handler(w http.ResponseWriter, r *http.Request) {
e := "SomeKey describing content - eg checksum"
w.Header().Set("Etag", e)
w.Header().Set("Cache-Control", "max-age=2592000") // 30 days
if match := r.Header.Get("If-None-Match"); match != "" {
if strings.Contains(match, e) {
w.WriteHeader(http.StatusNotModified)
return
}
}
...
}
有用的链接:
答案 1 :(得分:1)
你使用golang的事实并不意味着你不能使用像ngnix或apache这样的反向代理来处理浏览器缓存和你想要开箱即用的其他重要事情而不必直接在你的api中处理它们