2013-07-17 78 views
5

我一无所知Web开发和揣摩学习是一个开始做跳的最好方式。道歉,如果这是微不足道的。转到网页静态文件服务

我下面就building a webpage in 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标记。

enter image description here

我想要的形象出现,我告诉他们,但得到的空白影像,他们应该是。我没有看到任何错误,说该文件无法找到。

我认为这应该工作的方式(在此又没有经验)是告诉我有这样的目录,里面的一些静态文件,每当一个模板请求这里的图像检查,如果发现服务的服务器。似乎不是这么简单。我究竟做错了什么?我怎样才能使这个工作?

我使用http.ListenAndServe(":8080", nil)在我main换句话说,我不使用Apache或图像应当从不同的URL路径的模板送达其他一些Web服务器

回答

8

您需要定义静态文件将使用类似的送达:

http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("/home/jeff/web/")))) 

,然后确保<IMG>源URL是这样的:

<img src="/static/foo.jpg" alt="moooooo"> 

希望有所帮助。