私はgolangの "html/template"パッケージを使用して、フレームワークとして同じ_base.htmlを使用して複数のページにコンテンツを提供しています。私は、複数のhtmlファイル(_base.htmlとコンテンツファイル)を1つにするためにマージします。右のディレクトリに_base.htmlポイントで私の.cssへのHTMLリンクタグを使用しているので、私のCSSがうまくレンダリング私のウェブサーバのルートにそう異なるディレクトリレベルでCSSを提供するGolangテンプレート
func main() {
http.HandleFunc("/", indexHandler)
http.HandleFunc("/blog/", blogHandler)
http.Handle("/css/", http.StripPrefix("/css/", http.FileServer(http.Dir("http/css"))))
http.ListenAndServe(":1337", nil)
}
func indexHandler(w http.ResponseWriter, r *http.Request) {
index := template.Must(template.ParseFiles(
"http/html/_base.html",
"http/html/index.html",
))
index.Execute(w, nil)
}
func blogHandler(w http.ResponseWriter, r *http.Request) {
blog := template.Must(template.ParseFiles(
"http/html/_base.html",
"http/html/blog.html",
))
blog.Execute(w, nil)
}
、:
<link href="css/style.css" rel="stylesheet">
しかしとき私は/ to/blog /にナビゲートしています。私のCSSはレベルが下がった(またはレベルアップしましたが、あなたはそれを見たいと思っています)ので、CSS hrefが突然/blog/css/style.cssを指しています。レンダリングされません。
これは、_base.htmlでマージするすべてのコンテンツファイルにCSSのレベルを簡単に固定することができますが、別のクリーンな方法でなければならないと感じています。この場合、私の腸は誤った判断をしていますか?
ダーン、私はそのようなn00bです、あなたはとても親切です。知らざるべきだったが、忘れていた。どうもありがとうございます – Dani