使用Go net / http服务链接的CSS和js

使用Go net / http服务链接的CSS和js

问题描述:

I cannot make net/http serve html file with the linked css and script file.

I have

site/lib/ratchet/css/ratchet.css
site/lib/ratchet/js/ratchet.js

in my project folder structure, and

site/src/index.html

and in this index.html I have included two files

<link href="../lib/ratchet/css/ratchet.css" rel="stylesheet">

<script src="../lib/ratchet/js/ratchet.js"></script>

and Go function to serve it is:

func index(w http.ResponseWriter, r *http.Request) {
    http.ServeFile(w, r, "/Users/faruk/dev/otp/site/src/index.html")
}

in main():

r.HandleFunc("/", index).
    Methods("GET")

I make use of gorilla/mux above.

I can view it from the browser but with only html. the two linked file has been given 404.

Can not http.ServeFile intended for this purpose to automatically resolve the linked css and js files to serve the index.html or alike files? What is the standard way to serve an html file in Go net/http?

You need to setup a file server to serve the files found in your lib directory. Go has a file server in the http package

func init() {
    http.Handle("/lib/", http.FileServer(http.Dir("/Users/faruk/dev/otp/site/")))
}