2 つのファイル サーバーを実行しようとしていますが、そのうちの 1 つは ui
フォルダー で提供されています。 Index.html
サービス、および別のサーバーが次のコードなどの他の静的ファイルを提供します:
2 つのファイルサーバー オブジェクトはまったく同じ方法で定義されており、最初のオブジェクト (uiserver) は正常に動作しますが、2 番目のオブジェクト (localhost:8080/files
の staticfilesserver) では 404 が発生します。
次のコードのように、問題を絞り込み、最初の問題 (動作中のファイル サーバー) を削除しました。 リーリー
しかし、それでもパスlocalhost:8080/files に 404
が表示されます。
/files から
/ に変更すると期待どおりに機能しますが、それは私が望んでいることではありません。## Serving でそれが可能かどうか疑問に思っています。 #/
以外のパスと、それをどのようにして達成したかを説明します。
また、私のフォルダー構造:
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.servemux.handle()
は、関係があり、実際にはそのパスは次のように要約されます:
リーリー
上記のコードは、
ではなく ./files
フォルダー内のすべてのコンテンツを提供します (dir(".")
で記述されているように)
それは私の問題を解決しました。
以上がGo http.FileServer で予期しない 404 エラーが発生するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。