我正在学习在 go 中构建网页的教程。本教程中的所有内容都很容易掌握,但我正在尝试对其进行扩展。具体来说,我正在尝试添加一些静态文件(图片)。我一直在浏览 go 文档并遇到FileServer并添加http.ServeFile(w, r, "/home/jeff/web/foo.jpg")在我的处理程序中,我看到正在提供图像,但它没有使用模板<h1>{{.Title}}</h1><p>[<a href="/edit/{{.Title}}">edit</a>]</p><img src="foo.jpg" alt="moooooo"><img src="foo.jpg" alt="foooooo"><div>{{printf "%s" .Body}}</div>*我也尝试提供图像的完整路径。我想要做的是让图像占据我在模板中小心放置的 html 标签。我希望图像出现在我告诉他们的地方,但在它们应该出现的地方得到空白图像。我没有看到任何说找不到文件的错误。我认为这应该起作用的方式(再次没有这方面的经验)是通过告诉服务器我有一个包含一些静态文件的目录,并且每当模板请求在此处检查图像并在找到时为其提供服务。似乎没有这么简单。我究竟做错了什么?我怎样才能让它发挥作用?换句话说,我使用的http.ListenAndServe(":8080", nil)是我的main,我没有使用 apache 或其他一些网络服务器
1 回答
翻翻过去那场雪
TA贡献2065条经验 获得超13个赞
图像应该从不同的 URL 路径提供给模板。
您需要使用以下内容定义从何处提供静态文件:
http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("/home/jeff/web/"))))
然后确保<IMG>
源 URL 类似于:
<img src="/static/foo.jpg" alt="moooooo">
希望有帮助。
- 1 回答
- 0 关注
- 240 浏览
添加回答
举报
0/150
提交
取消