利用浏览器缓存静态文件

时间:2017-12-14 05:35:39

标签: go browser-cache static-files

我不确定,Golang如何仅针对CSSjsHTML模板文件等静态文件利用浏览器缓存。

在Apache中使用.htaccess,过去很容易,但我在golang

中看不到任何此类内容

我想知道,我可以使用任何hack或方法来缓存静态文件,例如cssjs

不使用cloudflare - 我的应用无法使用cloudflare。

2 个答案:

答案 0 :(得分:3)

浏览器缓存由服务器发送的标头控制。这样,它不依赖于特定安装的软件。

您需要发送标头EtagCache-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中处理它们