Go 为元素创建个性化页面
我不确定标题是否正确,因此非常欢迎您建议另一个标题 基本上,我有一个小的web服务,它是一个课程目录。目录页面显示正确,但我无法使课程页面正常工作 以下是我的课程页面处理程序:Go 为元素创建个性化页面,go,Go,我不确定标题是否正确,因此非常欢迎您建议另一个标题 基本上,我有一个小的web服务,它是一个课程目录。目录页面显示正确,但我无法使课程页面正常工作 以下是我的课程页面处理程序: func courseHandler(w http.ResponseWriter, r *http.Request) { err := templates.ExecuteTemplate(w, "course", courses) if err != nil { fmt.Fprintf(w
func courseHandler(w http.ResponseWriter, r *http.Request) {
err := templates.ExecuteTemplate(w, "course", courses)
if err != nil {
fmt.Fprintf(w, err.Error(), http.StatusInternalServerError)
return
}
}
以下是我如何解析模板和存储课程:
var courses map[string]*models.Course
var templates = template.Must(template.ParseGlob("templates/*.html"))
我也有目录和课程页面的模板,我把值放在{{…}格式中
下面是目录HTML页面中的课程元素示例,它是指向课程页面的链接
{{ range $key, $value := . }}
<div class="row mb-2">
<div class="col-md-8 mx-auto">
<div
class="row no-gutters border rounded overflow-hidden flex-md-row mb-4 shadow-sm h-md-250 position-relative">
<div class="col p-4 d-flex flex-column position-static">
<strong class="d-inline-block mb-2 text-success">{{ $value.Category }}</strong>
<h3 class="mb-0">{{ $value.Title }}</h3>
<div class="mb-1 text-muted">{{ $value.StartDate }}</div>
<p class="card-text mb-auto">{{ $value.Description }}</p>
<a href="/course?id={{$key}}" class="stretched-link">Узнать больше</a>
</div>
<img class="float-right" width="200" height="250" src="{{$value.Image}}">
</div>
</div>
</div>
{{ end }}
当我尝试继续进入课程页面时,出现“404未找到”错误。您的问题不太可能与模板有关。很可能您的处理程序注册的路径与您尝试的路径不同,或者根本没有注册。也就是说,您可能看到了错误的url,或者课程url没有处理程序。@bserdar我注册了我的处理程序,路径似乎是正确的,我还提供了代码您注册了帖子/课程,但是使用href,它将执行一个GET/course@bserdar非常感谢。您的问题不太可能与模板有关。很可能您的处理程序注册的路径与您尝试的路径不同,或者根本没有注册。也就是说,您可能看到了错误的url,或者课程url没有处理程序。@bserdar我注册了我的处理程序,路径似乎是正确的,我还提供了代码您注册了帖子/课程,但是使用href,它将执行一个GET/course@bserdar非常感谢。
staticOptions := martini.StaticOptions{Prefix: "templates"}
m.Use(martini.Static("templates", staticOptions))
m.Get("/", indexHandler)
m.Get("/add", addHandler)
m.Get("/courses", coursesHandler)
m.Get("/edit", editHandler)
m.Get("/delete", deleteHandler)
m.Post("/SaveCourse", saveCourseHandler)
m.Post("/course", courseHandler