I am using Chi Router and serving files like this:
fileServer := http.FileServer(http.Dir("./static/"))
mux.Handle("/static/*", http.StripPrefix("/static", fileServer))
In the html file:
<img src="./static/images/img.png" />
All's working great and when checking the path of img.png is http://localhost:8080/static/images/img.png WHICH is GOOD... BUT when user visit the profile...
mux.Route("/user", func(mux chi.Router) {
mux.Use(Auth)
mux.Get("/profile", handlers.Repo.ProfileGet) // path: /user/profile
})
After the user logs in and visit this path http://localhost:8080/user/profile the images do not appear(because the path has been changed)... When I inspected the image path i found: http://localhost:8080/user/static/images/img.png instead of http://localhost:8080/static/images/img.png
How this issue can be fixed ?
The Problem is related to the way relative URLs are resolved in HTML
This path is resolved relative to the current URL in the browser.
To fix this problem use an absolute path for your static resources in your HTML.
By adding a leading /, you're specifying that the path should be resolved from the root of the domain