为了账号安全,请及时绑定邮箱和手机立即绑定

go - 打开文件没有这样的文件或目录

go - 打开文件没有这样的文件或目录

Go
三国纷争 2021-12-20 16:31:35
我写了一个包装函数来渲染这样的模板func RenderTemplate(w http.ResponseWriter, data interface{}, tmpl... string) {    cwd, _ := os.Getwd()    for _ , file := range tmpl{        file = filepath.Join(cwd,"./view/"+file+".html")    }    t, err := template.ParseFiles(tmpl...)    if err != nil {        http.Error(w, err.Error(), http.StatusInternalServerError)        return    }    err = t.Execute(w, data)    if err != nil {        http.Error(w, err.Error(), http.StatusInternalServerError)    }}我在其中设置了静态文件夹和路由处理程序 mainhttp.Handle("/public/",http.StripPrefix("/public/",http.FileServer(http.Dir("public"))))http.HandleFunc("/",route.IndexHandler)这是我的路线处理程序func IndexHandler(w http.ResponseWriter, r *http.Request) {    files:=[]string{"base","index"}    util.RenderTemplate(w, nil, files...)}我打算使用模板嵌套来帮助index.html扩展base.html这是 base.html{{define "base"}}<!DOCTYPE html><html><head>    <meta charget="utf-8">    <title>{{template "title".}}</title>    <script type="text/javascript" src="https://code.jquery.com/jquery-2.2.0.min.js"></script>    <script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>    <script type="text/javascript" src="/js/isotope.pkgd.min.js"></script>    <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">    <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">    <link rel="stylesheet" type="text/css" href="/css/style.css"></head><body>    {{template "index".}}</body></html>{{end}}这是 index.html<!DOCTYPE html><html>{{define "title"}}Homepage{{end}}<body>    {{define "index"}}    <div class="wrapper">        <div class="page-content">            <div class="container">                <div class="left">                    <img src="../public/images/img_landing_page_mac.png">但是当我运行服务器并在浏览器上请求路径时,它显示一个错误open base: no such file or directory我的渲染功能有问题吗?
查看完整描述

1 回答

?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

t, err := template.ParseFiles(tmpl...)

我猜‘tmpl’似乎不是文件路径:(

我猜你想喜欢这个。


files := make([]string, len(tmpl))

for i, file := range tmpl{

    files[i] = appendfilepath.Join(cwd,"./view/"+file+".html")

}

t, err := template.ParseFiles(files...)


查看完整回答
反对 回复 2021-12-20
  • 1 回答
  • 0 关注
  • 231 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号