在go中提供.html模板时,它不会加载任何媒体

时间:2017-11-07 21:40:48

标签: html go go-templates

我目前正在使用内置模板开发Go Web服务器。


我当前遇到的问题是,当我运行Web服务器时,它正在提供正确的文件,但它不会在网站上加载任何媒体。(例如图片和字体)当我运行.html文件因为它所有媒体都已加载所以我知道它与我的后端有关。这是我的代码:

var templates = template.Must(template.ParseGlob("static/*.html"))
...
func index(w http.ResponseWriter, r *http.Request) {
    currentTime := time.Now().Local()
    toSend := payload{
        Date:   currentTime.Format("01-02-2006"),
        Status: "Active",
    }
    t, err := template.ParseFiles("static/index.html")
    if err != nil {
        log.Fatalf("Error parsing template: %v", err)
    }
    t.Execute(w, toSend)
}
...

这是我的文件路径:

app
 |-main.go
 |-static(contains static files)
     |-media(contains all media)
     |-index.html

这可以很好地提供所有必需数据的模板,而无需任何媒体。感谢所有帮助!

1 个答案:

答案 0 :(得分:0)

@Adrian在评论中回答说,我根本没有通过go服务器加载媒体资产以供html使用。

    http.Handle("/media/",http.StripPrefix("/media/",http.FileServer(http.Dir("static/media"))))

我只需要