I posted this question on stackoverflow, but nobody seems to be able to answer it, so I’m reposting it in this forum.
I link the question, if someone could answer it I’d be very thankful.
Stackoverflow question:
I posted this question on stackoverflow, but nobody seems to be able to answer it, so I’m reposting it in this forum.
I link the question, if someone could answer it I’d be very thankful.
Stackoverflow question:
Your backend is totally wrong. You made two file servers to serve pages on the same route. You should use a handler for every route like bellow.
func handler(w http.ResponseWriter, r *http.Request) {
}
...
http.HandleFunc("/example", handler)
LE: Basically one file server for your application is enough.
first your 404 is file not found, not is route 404.
state 1: your file error.
if / and /example is dir, your request access fild is ../frontend/public/index.html and ../frontend/public/exampme/index.html ,please look net/http/fs.go source code.
/a.js -> ../frontend/public/a.js
[root@localhost tmp]# ls -R bruhurb/ frontend/
bruhurb/:
main.go
frontend/:
public
frontend/public:
example index.html
frontend/public/example:
index.html
[root@localhost tmp]# cat frontend/public/index.html
1
[root@localhost tmp]# cat frontend/public/example/index.html
2
[root@localhost tmp]# cd bruhurb/
[root@localhost bruhurb]# ls
main.go
[root@localhost bruhurb]# go run main.go
2020/04/08 22:42:53 Listening on http://locahost:8080
state 2: your workdir is tmp dir or workdir is err.
add code fmt.Println(os.Args[0]) show workdir.
if use go run cmd start server, GO use a tmp dir run, workdir is tmp else relative path is invalid, so file is 404.
please use go build and start server in workdir, or add os.Chdir to workdir.