私はgoプログラミングでは初心者です。私はこのチュートリアル(https://golang.org/doc/articles/wiki/)に従った。私は複数のページとCSS要素を持つサイトの上に構築したかったのです。私はこれは私のmakeHandler機能であるGoはすべてのHTMLページのCSS要素をレンダリングしていません
http.Handle("/css/", http.StripPrefix("/css/", http.FileServer(http.Dir("css"))))
を使用する主な方法で
。すべての要求を正しいハンドラに向けることになっています。
func makeHandler(fn func(http.ResponseWriter, *http.Request, string)) http.HandlerFunc{
return func(w http.ResponseWriter, r *http.Request){
//extract page title from request
//and call the provided handler 'fn'
m := validPath.FindStringSubmatch(r.URL.Path)
fmt.Println(m)
if m == nil{
http.NotFound(w,r)
return
}
fn(w,r,m[2])
}
}私は「M」を印刷
は、すべての要求はビュー接頭辞た(私は、その後、テンプレートをレンダリングするために呼び出されるのViewHandlerを有します)。
http.HandleFunc("/view/", makeHandler(viewHandler))
私はAboutsiteをページを表示したいのであれば、urlは、その後のViewHandlerに導かれるであろう/ビュー/ Aboutsiteをを持っているでしょう。
問題は、htmlテンプレートにはCSSリンクがあり、リンクには 'view'というプレフィックスが付いていることです。私のHTMLテンプレートにこのコード行がある場合、
<link rel="stylesheet" href="css/bootstrap.min.css">
makeHandlerは、 'view'というプレフィックス付きのURLを受け取ります。 /view/css/bootstrap.min.css
CSS要素がレンダリングされるように追加する/変更する必要はありますか?
<リンクのrel = "スタイルシート" のhref = "/ CSS/bootstrap.min.css">そうでなければ、アクティブなURL – Tiega
さえカントーへのhrefにURLを "添付します"あなたは新しく勉強するのが難しいです。まだecho HTTPサーバを見ているかもしれません。あなたが本当にウェブサイトを作りたいのであれば、多くのコーディングを省くことができます。 :) – Tiega
ありがとうございました!それを使うためにエコーを理解しよう –