利用静态文件的浏览器缓存



我不确定,在golang中,我们如何利用浏览器缓存仅用于静态文件,例如 CSSjsHTML模板文件。

使用Apache中的.htaccess,它曾经很容易,但是我在golang

中看不到任何此类内容

我想知道,任何可用的黑客或方法可以缓存静态文件,例如 cssjs

不使用CloudFlare - 我的应用不适用于CloudFlare。

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

您需要发送标头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
        }
    }
    ...
}

有用的链接:

  • 更多详细信息https://www.sanarias.com/blog/115Learninghttpcachingoo

  • 中间件示例https://github.com/dc0d/cache-control by kaveh shahbazian

  • http缓存和标题介绍

您正在使用Golang的事实并不意味着您不能使用Ngnix或Apache之类的反向代理来处理浏览器缓存以及您想要的其他重要事项直接在您的API

中处理它们

相关内容

  • 没有找到相关文章

最新更新