使用Go-net/http提供链接的css和js

使用Go-net/http提供链接的css和js,go,Go,我无法使用链接的css和脚本文件使net/http服务于html文件 我有 site/lib/ratchet/css/ratchet.css site/lib/ratchet/js/ratchet.js 在我的项目文件夹结构中,以及 site/src/index.html 在这个index.html中,我包含了两个文件 <link href="../lib/ratchet/css/ratchet.css" rel="stylesheet"> <script src="..

我无法使用链接的css和脚本文件使net/http服务于html文件

我有

site/lib/ratchet/css/ratchet.css
site/lib/ratchet/js/ratchet.js
在我的项目文件夹结构中,以及

site/src/index.html
在这个index.html中,我包含了两个文件

<link href="../lib/ratchet/css/ratchet.css" rel="stylesheet">

<script src="../lib/ratchet/js/ratchet.js"></script>
在main()中:

我使用上面的gorilla/mux

我可以从浏览器中查看,但只能使用html。两个链接的文件已被指定为404

无法为此目的自动解析链接的css和js文件以服务index.html或类似文件?
在Go net/http中,为html文件提供服务的标准方式是什么?

您需要设置一个文件服务器来为lib目录中的文件提供服务。Go在http包中有一个文件服务器

func init() {
    http.Handle("/lib/", http.FileServer(http.Dir("/Users/faruk/dev/otp/site/")))
}

你的意思是在链接文件到静态html文件的情况下,我们需要这个总是在进行吗?真的帮你自己一个忙,并使用一个合适的Web服务器,如静态文件服务。我是开发阶段。难道没有一个合适且不麻烦的方法来实现这一点吗?web服务器应该已经能够解析html中的链接文件。@fsc:http/html不是这样工作的。Web服务器只返回浏览器要求的内容。是的,它可以做到,你可能是对的。但我不明白为什么-4.谢谢,它现在起作用了。但是我必须更改init()的名称。编译器抱怨未定义的init。可能是我们在这里遇到的保留名称问题。另一个名称可以无缝工作。您不能调用
init()
。在
func init()
中定义的任何内容都将在
func main()
之前自动运行。
r.HandleFunc("/", index).
    Methods("GET")
func init() {
    http.Handle("/lib/", http.FileServer(http.Dir("/Users/faruk/dev/otp/site/")))
}