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

如何通过 http 提供静态文件

如何通过 http 提供静态文件

Go
POPMUISE 2021-06-15 17:00:25
我正在学习在 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">

希望有帮助。


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

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信