Ok, so first of let me start off by saying I know that with go I should really go for the net/http framework unless I have the knowledge to write my own or I explicitly tried that and it didn't work. However, I'm an idiot, and I thought I could save some time and headache by using a framework and I thought choosing one maintained by only 1 guy is a good idea. The framework is here: https://github.com/kataras/iris But I don't expect you to read through all of it. However, it is based on top of fasthttp which some of you might have experience with (hopefully).
The problem I'v meet with this framework is with configuration of static content serving. For example, I have my index page being served:
iris.Get("/", serveHome)
which serves and html template over at ip:port.
I have static ressources listed as such:
iris.Static("/css", "./client/css")
Which basically serves the dir css over at ip:port/css
However, when I put this all up on a server and redirected mydomain.example and www.mydomain.example to ip:port using nginx (with an ssl&tls cert), this worked:
iris.Get("/", serveHome)
and served the index.html at mydomain.example. This didn't:
iris.Static("/css", "./client/css")
And now my website can't access any static resources, because its trying to access mydomain.example/css, which, for some reason, isn't pointing to ip:port/css.
Any clue why this might be happening, have you seen this behavior on any other http server before and if so do you have any pointers that might help me figure out this thing ? I'm at a loss and any advice, even if its just speculation, would be useful.
I know you're already porting this, but if i have to guess, i'd say the problem is the relative path you're using for ./client/css
.
If you're compiling this and running it form your development environment, this pretty much will run under $GOPATH/bin
and i guess your CSS files are in $GOPATH/src/path/to/project/client/css
... then when the compiled server tries to find ./client/css
from $GOPATH/bin
... well, i guess you got it, it looks up in $GOPATH/bin/client/css
. But that's just a guess, i'd need more info from your project to debug that.
Good luck with porting your project!