html - Golang 模板在不同的目录级别上提供 css

标签 html css go

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

最佳答案

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

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

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

?

关于html - Golang 模板在不同的目录级别上提供 css,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18227736/

相关文章:

html - 一个像素在 Firefox 和 chrome 中有所不同

javascript - 引导导航栏响应不工作

html - 如何从第二级父级访问元素?

function - StructScan 未知结构 slice [GO]

go - 如果条件为假,如何停止 golang 中的 cron 作业?

go - 如何在 go/goa 框架中正确弃用 API 端点?

javascript - 当用户滚动时停止隐藏在导航栏下的内容

javascript - 如何将第二个脚本的行为绑定(bind)到第一个 "on click"?

javascript - 在动态下拉选择中插入选项元素

html - 链接颜色不正确