代码之家  ›  专栏  ›  技术社区  ›  Lambda killed App

利用浏览器缓存处理静态文件

  •  0
  • Lambda killed App  · 技术社区  · 7 年前

    我不确定,在Golang我们如何才能利用浏览器缓存只处理静态文件,如 CSS , js 而不是 HTML 模板文件。

    具有 .htaccess 在Apache中,这过去很容易,但我在 golang

    我想知道,有什么黑客或方法可以缓存静态文件,比如 css , js公司

    不使用cloudflare -我的应用程序不适用于cloudflare。

    2 回复  |  直到 7 年前
        1
  •  3
  •   Eugene Lisitsky    7 年前

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

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

    有用的链接:

        2
  •  1
  •   Andrei Sfat systemfreund    7 年前

    使用golang并不意味着不能使用像ngnix或apache这样的反向代理来处理浏览器缓存和其他您想要的现成的关键内容,而不必在api中直接处理它们