我有两个html文件解析如下:
var LoginTemplate = template.Must(template.ParseFiles(
"views/_base.html",
"views/login.html",
))
并按原样执行:
func LoginFormHandler(w http.ResponseWriter, r *http.Request, ctx *models.Context) error {
err := LoginTemplate.Execute(w, ctx)
if err != nil {
http.Error(w, err.Error(), 404)
}
return nil
}
以下是_base.html的内容:
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!-- Meta, title, CSS, favicons, etc. -->
<meta charset="utf-8">
<title>{{ template "title" . }}</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
{{ template "styles" . }}
{{ template "scripts" . }}
</head>
{{ template "content" . }}
</html>
上面指定的模板都在login.html中定义。例如,&#34; styles&#34;包装了我所有的CSS链接等。在我的主要功能中,我使用gorilla / pat路由器来处理对服务器的多个页面请求。另外,我想像这样提供我的静态资源文件夹:
router.PathPrefix("/assets/").Handler(http.StripPrefix("/assets/", http.FileServer(http.Dir("./assets/"))))
if err := http.ListenAndServe(":"+settings.Server.Port, router); err != nil {
panic(err)
}
但是,在构建并运行我的程序,然后导航到本地主机时,我发现没有任何CSS或js正在渲染。我的css和js文件夹在这棵树中:
ROOT /
资产/
CSS /
js /