我正在尝试使用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
我无法获得任何引导图形。我看到了标题名称,但没有看到矩形导航栏。
直接在浏览器中打开文件时,可以看到带有标题的导航栏图像。
目前我不确定为什么引导图形无法正确显示
答案 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 -->