Golangでは、静的コンテンツをルートディレクトリから配信するにはどうしたらよいのですか?ホームページから静的なコンテンツをルートから配信
は、一例として、次のような単純なWebサーバーを使用します。
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/", HomeHandler) // homepage
http.ListenAndServe(":8080", nil)
}
func HomeHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "HomeHandler")
}
私は
http.Handle("/", http.FileServer(http.Dir("./")))
をすれば、私は「/」用の2件の登録を持っていると言ってパニックを受けます。私がインターネット上で見つけたすべてのGolangの例は、静的なコンテンツを別のディレクトリから提供することを提案していますが、それはsitemap.xml、favicon.ico、robots.txtなどの実践や常にルートから提供されることが義務付けられています。
私が求めている動作は、Apache、Nginx、またはIISなどのほとんどのWebサーバーで検出された動作であり、ルールが最初にトラバースされ、ルールが見つからない場合は実際のファイルが検索されますファイルは404sです。私の推測では、http.HandlerFunc
の代わりにhttp.Handler
と書いて、拡張子の付いたファイルを参照しているかどうかを調べる必要があります。そうであれば、ファイルの存在をチェックしてファイルを提供します。そうでない場合は404sか、 "/"のためのものでした。残念ながら、私はそのような仕事をどのように開始するのかは定かではありません。私の
パートは私が上に複雑大規模な私は何かが欠けていますことを思わせるような状況だと言いますか?どんな指導も高く評価されます。
ルートからのrobots.txt、favicon.icoを、または他のサービスを提供するための別の例を。実際にはルートの外部に存在していますが、http://noypi-linux.blogspot.com/2014/07/golang-web-server-basic-operatons-using.html –