如何在簡單的HTTP 伺服器中隱藏檔案副檔名
許多Web 伺服器在網址顯示檔案或使用者體驗的原因。本指南示範如何在 Go HTTP 伺服器中隱藏 URL 的 .html 副檔名。
解決方案
使用 http.Dir 實作 http.FileSystem 具有多種好處,包括利用 http.FileServer 中強大的程式碼。可以建立自訂 HTMLDir 結構來實現此功能。
實作
Open 的實作取決於所需的行為。以下介紹了三個場景:
選項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>
將HTMLDir 與http.StripPrefix 結合使用,可以在從以下位置提供文件時有效隱藏.html 副檔名指定的目錄。該技術提供了更無縫且美觀的用戶體驗,同時仍允許存取預期內容。
以上是如何在 Go HTTP 伺服器中隱藏 URL 中的 HTML 檔案副檔名?的詳細內容。更多資訊請關注PHP中文網其他相關文章!