我不确定,在golang中,我们如何利用浏览器缓存仅用于静态文件,例如 CSS
, js
和 HTML
模板文件。
使用Apache中的.htaccess
,它曾经很容易,但是我在golang
我想知道,任何可用的黑客或方法可以缓存静态文件,例如 css
, js
不使用CloudFlare - 我的应用不适用于CloudFlare。
浏览器缓存由服务器发送的标头控制。这样,它不取决于特定的已安装软件。
您需要发送标头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
}
}
...
}
有用的链接:
更多详细信息https://www.sanarias.com/blog/115Learninghttpcachingoo
中间件示例https://github.com/dc0d/cache-control by kaveh shahbazian
http缓存和标题介绍
您正在使用Golang的事实并不意味着您不能使用Ngnix或Apache之类的反向代理来处理浏览器缓存以及您想要的其他重要事项直接在您的API