我正在使用 golang 的“html/template”包在使用相同 _base.html 作为框架的多个页面上提供内容。我将多个 html 文件(_base.html 和内容文件)合并为一个文件。
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)
}
在我的网络服务器的根目录上这样做我的 css 渲染得很好,因为 _base.html 中我的 .css 的 html 链接标记指向正确的目录,使用:
<link href="css/style.css" rel="stylesheet">
但是,当我从 / 导航到 /blog/ 时,我的 css 下降了一个级别(或者我上升了一个级别,但是您希望看到它),因此 css href 突然指向 /blog/css/style.css 和因此它不会呈现。
这可以很容易地修复,说明我与 _base.html 合并的每个内容文件中的 css 级别,但是我觉得必须有另一种更清晰的不同方式。在这种情况下,是否存在或我的直觉判断错误?
qq_花开花谢_0
相关分类