Css 如何正确配置Golang gorilla/pat路由器以服务静态资产文件夹?
我有两个html文件,解析如下:Css 如何正确配置Golang gorilla/pat路由器以服务静态资产文件夹?,css,go,gorilla,Css,Go,Gorilla,我有两个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.Exe
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>
然而,在构建并运行我的程序,然后导航到本地主机时,我看到CSS或js似乎都并没有呈现。我的css和js文件夹位于此树中:
根/
资产/
css/js/
我也尝试过将字符串参数“assets”传递给http.Dir。您是否从
assets/
文件夹所在的目录运行程序?具体来说,您应该执行go build&./
而不是go run main.go
(将从临时目录运行它)是的,我的主函数驻留在名为femp.go的文件中,该文件与assets/位于同一目录中。然后(在我的Windows计算机上)femp.exe--settings=settings.xml
,其中settings是一个自定义标志,用于解组包含服务器和数据库规范的xml文件。@bama\u程序员可以显示模板脚本吗
router.PathPrefix("/assets/").Handler(http.StripPrefix("/assets/", http.FileServer(http.Dir("./assets/"))))
if err := http.ListenAndServe(":"+settings.Server.Port, router); err != nil {
panic(err)
}