我有一个去webserver的库,并且包含js文件,所以这应该是用户应用程序的目录树。 myapp
是用户应用程序,mylib
是通过go get
获取的库。Golang在不同目录中提供静态文件
src
`-- github.com
|-- mylib
| |-- myJSlib
| `-- myGOlib
`-- myapp
|-- main.go
`-- static
|-- index.html
|-- js
`-- css
用户应用程序的Web服务器将服务于静态HTML中static
子目录通过
http.Handle("/", http.FileServer(http.Dir("static"))
我的问题是我不能包括库的脚本到index.html
因为http.FileServer
服务目录static
。天真的解决方案是我将http.FileServer
的根移动到src
。但是这不是我想要的解决方案,因为在从src
包含脚本时需要详细说明。另一种解决方案是我告诉用户将js文件移动到static
目录中,如果用户处于生产模式并且我已经缩小了我的jslib版本,但是在需要结构化树文件夹的开发模式下这很好,但这无法解决问题。也许我可以分开repo为myGOlib和myJSlib,用户可以使用go get
来获取myGOlib并将myJSlib克隆到静态目录中。但是我想用户只需简单地使用go get
,并且一切都可以同时工作,而不需要再次将结构化。
任何解决方案,将不胜感激。感谢
解决方案似乎合乎逻辑,我必须尝试它,但注册第二处理程序时遇到困难。看来我不能注册处理程序,除了“/”。我在浏览器中收到这个错误'GET http:// localhost:8080/thirdparty 404(Not Found)'。 – billyzaelani
使用http.StripPrefix解决。谢谢 – billyzaelani