In this example, we'll explore how to serve static files using the Chi router in Go. Chi is a lightweight, idiomatic HTTP router for building Go applications. It allows you to easily set up routes and serve files from your server.
package main
import (
"net/http"
"github.com/go-chi/chi/v5"
)
func main() {
r := chi.NewRouter()
// Serve static files from the "static" directory
r.Route("/static", func(r chi.Router) {
r.Use(http.StripPrefix("/static", http.FileServer(http.Dir("static"))))
r.Get("/*", http.FileServer(http.Dir("static")))
})
// Start the server on port 8080
http.ListenAndServe(":8080", r)
}
How do I avoid rehashing overhead with std::set in multithreaded code?
How do I find elements with custom comparators with std::set for embedded targets?
How do I erase elements while iterating with std::set for embedded targets?
How do I provide stable iteration order with std::unordered_map for large datasets?
How do I reserve capacity ahead of time with std::unordered_map for large datasets?
How do I erase elements while iterating with std::unordered_map in multithreaded code?
How do I provide stable iteration order with std::map for embedded targets?
How do I provide stable iteration order with std::map in multithreaded code?
How do I avoid rehashing overhead with std::map in performance-sensitive code?
How do I merge two containers efficiently with std::map for embedded targets?