ホームページ >バックエンド開発 >Golang >Go Web アプリケーションで CSS ファイルを提供すると 404 エラーが発生するのはなぜですか?

Go Web アプリケーションで CSS ファイルを提供すると 404 エラーが発生するのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-23 20:05:21271ブラウズ

Why Am I Getting a 404 Error When Serving CSS Files in My Go Web Application?

問題: Go で CSS をレンダリング中に 404 ページが見つかりません

Go Web アプリケーションで CSS ファイルを使用しようとすると、次のような問題が発生する可能性があります404 エラーは、CSS ファイルが見つからないことを示します。この問題は、提供されているドキュメントの指示に従っているにもかかわらず発生します。

関連するディレクトリ構造とコード:

関連するディレクトリ構造は次のとおりです:

src/
  |__ css/somefilename.css
  |__ server/server.go

server.go のコードには次のものが含まれます:

http.Handle("/css/", http.StripPrefix("/css/", http.FileServer(http.Dir("css"))))

HTML テンプレート内src/templates/layout.html、CSS ファイルは次のように参照されます:

<link rel="stylesheet" type="text/css" href="../css/css490.css" />

問題のソースと解決策:

指定されたパスが原因でエラーが発生しますFileServer ディレクトリへのパスは絶対パスではありません。 Go の相対パスは、アプリケーションが実行される作業ディレクトリに解決されます。

この問題を解決するには、ユーザーはアプリケーションが正しい作業ディレクトリから実行されていることを確認できます。通常は、次の場合にコマンド ライン引数で指定されます。プログラムを実行しています。あるいは、CSS ディレクトリへの絶対パスを FileServer 関数で明示的に指定することもできます。

たとえば、作業ディレクトリが src の場合、 go run server/server.go を実行するとパスが正しく解決され、 CSS ファイルは localhost:8080/css/ でアクセスできます。ただし、src/server フォルダーから go run server.go を実行すると 404 エラーが発生します。後者でこれを修正するには、絶対パスを使用するようにコードを変更します。

http.Handle("/css/", http.StripPrefix("/css/", http.FileServer(http.Dir("/src/css"))))

CSS ディレクトリへのフル パスを指定すると、プログラムは作業ディレクトリに関係なく CSS ファイルを見つけることができます。そこから実行されます。

以上がGo Web アプリケーションで CSS ファイルを提供すると 404 エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。