Go Web Development Cookbook
上QQ阅读APP看书,第一时间看更新

How it works…

Once we run the program, the HTTP server will start locally listening on port 8080. Browsing http://localhost:8080 will show us the same output we saw in our previous recipe, but this time the text color has changed from the default black to blue, as shown in the following image:

If we look at the Network tab of Chrome DevTools, we can see main.css, which has been loaded from the static/css directory present on the filesystem.

Let's understand the changes we introduced in the main() method as part of this recipe:

  • fileServer := http.FileServer(http.Dir("static")): Here, we created a file server using the FileServer handler of the net/http package, which serves HTTP requests from the static directory present on the filesystem.
  • http.Handle("/static/", http.StripPrefix("/static/", fileServer)): Here, we are registering the http.StripPrefix("/static/", fileServer) handler with the /static URL pattern using HandleFunc of the net/http package, which means  http.StripPrefix("/static/", fileServer) gets executed and passes (http.ResponseWriter, *http.Request) as a parameter to it whenever we access the HTTP URL with the /static pattern.
  • http.StripPrefix("/static/", fileServer): This returns a handler that serves HTTP requests by removing /static from the request URL's path and invokes the file server. StripPrefix handles a request for a path that doesn't begin with a prefix by replying with an HTTP 404.