두 개의 파일 서버를 실행하려고 합니다. 하나는 ui
文件夹中提供 index.html
에서 제공되고 다른 하나는 아래 코드와 같은 다른 정적 파일을 제공합니다.
두 파일 서버 개체는 정확히 같은 방식으로 정의됩니다. 첫 번째 개체(uiserver)는 잘 작동하지만 두 번째 개체(localhost:8080/files
의 staticfilesserver)는 404를 제공합니다.
아래 코드처럼 문제의 범위를 좁혀 첫 번째 문제(작업 파일 서버)를 제거했습니다.
으아악하지만 여전히 경로에 404가 표시됩니다 localhost:8080/files
/files
更改为 /
,它会按预期工作,但这不是我想要的,我只是想知道是否可以在 /
이외의 경로에서 핸들 경로를 제공하면 어떻게 되며 이를 어떻게 달성할 수 있나요?
또한 내 폴더 구조는 다음과 같습니다.
package main import ( "log" "net/http" ) func main() { srv := http.newservemux() // file server 1 uiserver := http.fileserver(http.dir("./ui")) srv.handle("/", uiserver) // file server 2 staticfilesserver := http.fileserver(http.dir("./files")) srv.handle("/files", staticfilesserver) if err := http.listenandserve(":8080", srv); err != nil { log.fatal(err) } }
http.dir()
和 http.servemux.handle()
이 관련이 있을 것이라는 것을 깨달았고 그들은 실제로 그들의 경로를 다음과 같이 요약합니다:
위 코드는 ./files
文件夹中的所有内容,而不是 .
(如 dir(".")
에 적힌 대로 제공됩니다.)
그것은 내 문제를 해결했습니다.
위 내용은 Go http.FileServer에서 예기치 않은 404 오류가 발생했습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!