Lambda killed App
Lambda killed App

Reputation: 684

Leverage browser caching for the static files

I am not sure, how in Golang we can leverage browser caching for only static files like CSS, js and not HTML template file.

With .htaccess in Apache, it used to be easy, but I don't see any such thing in golang

I want to know, any hack or method available where I can cache static files like css, js

without using cloudflare - My app does not work with cloudflare.

Upvotes: 1

Views: 1742

Answers (2)

Eugene Lisitsky
Eugene Lisitsky

Reputation: 12845

Browser caching is controlled by headers sent by the server. This way it doesn’t depend on particular installed software.

You need to send headers Etag and Cache-Control. Like this

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
        }
    }
    ...
}

Useful links:

Upvotes: 4

Andrei Sfat
Andrei Sfat

Reputation: 8606

The fact that you are using golang does not mean that you cannot use a reverse proxy like ngnix or apache to deal with browser caching and other crucial things you want out of the box and not have to deal with them directly in your api

Upvotes: 1

Related Questions