gpt4 book ai didi

html - html 模板中的内容被模板的文件位置而不是所需的文本替换

转载 作者:数据小太阳 更新时间:2023-10-29 03:37:45 25 4
gpt4 key购买 nike

我正在使用 html/template 包在提交表单时提供模板。作为该模板副本的页面正在呈现模板文件的位置,而不是应该替换 {{ .Title }}

的文本

因此在 response.html 中,{{ .Title }} 显示为“Projects/Go/src/web/site/index”而不是“我觉得是”

如何让 {{ .Title }} 被文本而不是文件位置替换?

这是我的代码:

package main


import (
"fmt"
"net/http"

"github.com/zenazn/goji"
"github.com/zenazn/goji/web"

"html/template"
"io/ioutil"
)


type Page struct {
Title string
Body []byte
}


func loadPage(title string) (*Page, error){
filename := title + ".html"
body, err := ioutil.ReadFile(filename)
if err != nil{
return nil, err
}
return &Page{Title: title, Body: body}, nil
}


func renderTemplate(w http.ResponseWriter, tmpl string, p *Page){
t, err := template.ParseFiles(tmpl + ".html")

if err != nil{
panic(err)
}

err = t.Execute(w, p)
fmt.Println(err)
}


func response(c web.C, w http.ResponseWriter, r *http.Request){

p, err := loadPage("Projects/Go/src/web/site/index")
if err != nil{
p = &Page{Title: "I feel that is "}
panic(err)
}
renderTemplate(w, "Projects/Go/src/web/site/response", p)
}


func serveSingle(filename string) func(w http.ResponseWriter, r *http.Request) {
return func(w http.ResponseWriter, r *http.Request) {
http.ServeFile(w, r, filename)
}
}


func main() {
goji.Get("/", serveSingle("Projects/Go/src/web/site/index.html"))
goji.Handle("/ask", response)
goji.Serve()
}

最佳答案

你的 loadPage()功能集Page.Title到文件路径,减去 .html默认扩展名。

您只是在 response() 中覆盖了此默认行为当 err != nil 时起作用.您还完全覆盖了 p带有 p = &Page{Title: "I feel that is "} 行的变量而不是仅仅设置 Title现有字段 Page .

你应该尝试改变:

func response(c web.C, w http.ResponseWriter, r *http.Request){

p, err := loadPage("Projects/Go/src/web/site/index")
if err != nil{
p = &Page{Title: "I feel that is "}
panic(err)
}
renderTemplate(w, "Projects/Go/src/web/site/response", p)
}

收件人:

func response(c web.C, w http.ResponseWriter, r *http.Request){

p, err := loadPage("Projects/Go/src/web/site/index")
if err != nil{
panic(err)
}
p.Title = "I feel that is "
renderTemplate(w, "Projects/Go/src/web/site/response", p)
}

关于html - html 模板中的内容被模板的文件位置而不是所需的文本替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25478053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com