ホームページ > バックエンド開発 > Golang > Go http.FileServer で予期しない 404 エラーが発生する

Go http.FileServer で予期しない 404 エラーが発生する

WBOY
リリース: 2024-02-06 09:18:12
転載
544 人が閲覧しました

Go http.FileServer 出现意外的 404 错误

質問の内容

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.dir()

http.servemux.handle()は、関係があり、実際にはそのパスは次のように要約されます: リーリー 上記のコードは、

.

ではなく ./files フォルダー内のすべてのコンテンツを提供します (dir(".") で記述されているように) それは私の問題を解決しました。

以上がGo http.FileServer で予期しない 404 エラーが発生するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート