【问题标题】:Golang template serving css on different directory levelsGolang 模板在不同的目录级别上提供 css
【发布时间】:2013-08-14 09:20:13
【问题描述】:

我正在使用 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 级别,但是我觉得必须有另一种更清洁、不同的方式。在这种情况下是否存在或我的直觉误判?

【问题讨论】:

    标签: html css go


    【解决方案1】:

    没有测试过,所以我不太确定,但是改变一下呢

    <link href="css/style.css" rel="stylesheet">
    

    <link href="/css/style.css" rel="stylesheet">
    

    ?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-19
      • 2012-08-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多