シンプルな HTTP サーバーでファイル拡張子を隠す方法
多くの Web サーバーでは URL にファイル拡張子が表示されますが、これは美観上望ましくない場合があります。またはユーザーエクスペリエンス上の理由。このガイドでは、Go HTTP サーバーの URL から .html 拡張子を隠す方法を説明します。
ソリューション
http.Dir を使用して http.FileSystem を実装すると、次のようないくつかの利点があります。 http.FileServer 内の堅牢なコードを活用します。カスタム HTMLDir 構造体を作成して、この機能を実装できます。
実装
Open の実装は、目的の動作によって異なります。以下に 3 つのシナリオを示します。
オプション 1: 常に .html を追加
<code class="go">func (d HTMLDir) Open(name string) (http.File, error) { return d.d.Open(name + ".html") }</code>
オプション 2: .html にフォールバック
<code class="go">func (d HTMLDir) Open(name string) (http.File, error) { f, err := d.d.Open(name) if os.IsNotExist(err) { if f, err := d.d.Open(name + ".html"); err == nil { return f, nil } } return f, err }</code>
オプション 3: .html で開始してフォールバックする
<code class="go">func (d HTMLDir) Open(name string) (http.File, error) { f, err := d.d.Open(name + ".html") if os.IsNotExist(err) { if f, err := d.d.Open(name); err == nil { return f, nil } } return f, err }</code>
http.StripPrefix で HTMLDir を使用すると、.html 拡張子を効果的に隠すことができます。指定されたディレクトリ。この技術は、目的のコンテンツへのアクセスを可能にしながら、よりシームレスで見た目にも美しいユーザー エクスペリエンスを提供します。
以上がGo HTTP サーバーの URL から HTML ファイル拡張子を非表示にする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。