ホームページ > バックエンド開発 > Golang > Go Web アプリケーションで静的アセット (CSS および JS) を効率的に提供するにはどうすればよいですか?

Go Web アプリケーションで静的アセット (CSS および JS) を効率的に提供するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-21 05:52:13
オリジナル
838 人が閲覧しました

How Can I Efficiently Serve Static Assets (CSS & JS) in My Go Web Application?

Go でのアセットの提供: 総合ガイド

Go の「Web アプリケーションの作成」チュートリアルでは、ユーザーは CSS および JS ファイルの提供で問題が発生することがよくあります。このガイドでは、この問題を解決し、Go アプリケーションがこれらの重要なアセットを効果的に配信できるようにするための段階的な手順を説明します。

ファイル構造と URL パス

静的ファイルを提供するには、次のものが必要です。次のようなファイル構造:

go-app/
├── assets
│   ├── css
│   │   └── style.css
│   └── js
│   │   └── script.js
├── main.go
├── index.html
ログイン後にコピー

アセットの URL パスを定義する場合、いくつかのパスがあります。オプション:

1. 「/」から提供:

http.Handle("/", http.FileServer(http.Dir("css/")))
ログイン後にコピー

これは、ルート URL (/) で CSS ディレクトリを提供します。

2.プレフィックスの使用:

http.Handle("/static/", http.FileServer(http.Dir("static")))
ログイン後にコピー

これにより、すべての静的ファイル パスに「/static」というプレフィックスが付けられます。したがって、CSS ファイルは /static/css/style.css.

3 でアクセスできるようになります。プレフィックスの削除:

http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("static"))))
ログイン後にコピー

これにより、ファイルを提供する前にプレフィックスが削除されます。そのため、CSS ファイルは /css/style.css でアクセスできるようになります。

HTML リファレンス

HTML ファイルでは、適切な URL パスを使用してアセットを参照します:

<link rel="stylesheet" href="/css/style.css">
<script src="/js/script.js"></script>
ログイン後にコピー

更新された main.go

これらの設定を適切に行うと、更新された main.go ファイルは次のようになります。 this:

func main() {
    http.HandleFunc("/view/", makeHandler(viewHandler))
    http.HandleFunc("/edit/", makeHandler(editHandler))
    http.HandleFunc("/save/", makeHandler(saveHandler))
    http.HandleFunc("/", makeHandler(indexHandler))

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

    http.ListenAndServe(":8080", nil)
}
ログイン後にコピー

これらの推奨事項を実装することで、Go アプリケーションが CSS および JS ファイルを正常に提供し、完全で機能的なユーザー エクスペリエンスを提供できるようになります。

以上がGo Web アプリケーションで静的アセット (CSS および JS) を効率的に提供するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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