我不确定,在 Golang 中,我们如何利用浏览器缓存来仅针对 CSS
、js
而不是 HTML
模板文件.
在 Apache 中使用 .htaccess
,它曾经很容易,但我在 golang
中没有看到任何这样的东西
我想知道任何可以缓存静态文件(如 css
、js
)的 hack 或方法
不使用 cloudflare - 我的应用不适用于 cloudflare。
最佳答案
浏览器缓存由服务器发送的 header 控制。这样它不依赖于特定安装的软件。
您需要发送 header 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
}
}
...
}
有用的链接:
关于go - 利用静态文件的浏览器缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47806498/