在tmpl文件中使用引导程序显示导航栏

时间:2018-12-19 00:52:31

标签: twitter-bootstrap go

我正在尝试使用GO制作一个简单的导航栏。

转到服务器:

func main() {
    tmpl := template.Must(template.New("navigator.tmpl").ParseFiles("./templates/navigator.tmpl"))

http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
    data := Names{
        PageTitle: "Holy Moly",
    }


    tmpl.Execute(w, data)
})
if err := http.ListenAndServe(":8080", nil); err != nil {
    panic(err)
}
}

这是我的模板文件 navigator.tmpl

{{ define "navigator" }}<!DOCTYPE html> {{ end }}
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <meta name="description" content="">
    <meta name="author" content="">
    <title>Dashboard Template for Bootstrap</title>
    <!-- Bootstrap core CSS -->
    <link href="/go/src/dashboard/assets/dist/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet">
    <!-- Custom styles for this template -->
    <link href="dashboard.css" rel="stylesheet">
  </head>
  <body>
    <nav class="navbar navbar-inverse navbar-fixed-top">
      <div class="container-fluid">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
            <span class="sr-only">Toggle navigation</span>           
          </button>
          <a class="navbar-brand" href="#">{{.PageTitle}}</a>
        </div>
  </body>
</html>

我的目录结构如下

开始:

=> src

  =>dashboard

    => main.go

    => assets

       =>dist

         =>bootstrap

            =>dist

               =>css/bootstrap.min.css

我无法获得任何引导图形。我看到了标题名称,但没有看到矩形导航栏。

直接在浏览器中打开文件时,可以看到带有标题的导航栏图像。

目前我不确定为什么引导图形无法正确显示

1 个答案:

答案 0 :(得分:2)

我假设您尚未为静态资产创建任何路由。因此,创建一个。

http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("assets"))))

通过添加上述处理程序,每个带有/static/前缀的请求都将使用assets文件夹中的静态文件来处理。

接下来,只需更改静态资产的网址即可。

<link href="/static/dist/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="/static/dashboard.css" rel="stylesheet"> <!-- I'm not sure where do you put the `dashboard.css` file, so just adjust this one -->