3

I'm trying to implement a simple wiki as depicted here => https://golang.org/doc/articles/wiki/

I know this has been asked several times, but I can't get the static content to load in my code. It's stupid, I followed the instructions which let's me add a handler for static content but the CSS still does not get used in the html file.

I added the handlers like this:

http.Handle("tmp/css", http.StripPrefix("tmp/css", http.FileServer(http.Dir("tmp/css"))))
http.Handle("tmp/img", http.StripPrefix("tmp/img", http.FileServer(http.Dir("tmp/img"))))

The whole code can be seen here, on my github page => https://github.com/Skarlso/goprojects/tree/master/golangwiki

Thanks for the help! Gergely.

2
  • 2
    Please read: 404 page not found - Go rendering css file and Why do I need to use http.StripPrefix to access my static files?. Also note that your pages are availabe under /edit/ and /view/, but the HTML templates refer to relative css urls (so e.g. it will mean /view/css/styles.css - not what you want!). Commented Sep 15, 2015 at 7:31
  • Damn. :) Why not put this as an answer @icza? I would have accepted it. :) Also, thanks. I did not find these questions. I should have looked harder. :/ Commented Sep 15, 2015 at 7:35

1 Answer 1

5

Since you use relative paths (e.g. http.Dir("tmp/css"), it is important how (from which folder) you start your app.

Please read: 404 page not found - Go rendering css file and Why do I need to use http.StripPrefix to access my static files? for more details.

Also note that your pages are available under /edit/ and /view/, but the HTML templates include CSS resources using relative urls:

<link rel="stylesheet" href="css/styles.css">

So e.g. the result will be /view/css/styles.css - not what you want!

Sign up to request clarification or add additional context in comments.

2 Comments

Thanks, it's working perfectly. Had to handle /view/css/ of course. Though I wonder if there is a better way of doing it rather than serving static content in order for a simple CSS and an IMG to be loaded?!
@Hannibal You could embed small resources in the Go app itself, see What's the best way to bundle static resources in a Go program?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.