使用GoLang http.FileServer时找不到反应脚本

时间:2017-02-15 21:32:46

标签: javascript html reactjs go directory

我正在开发一个Golang数据库项目,我想在其中使用React来创建前端。我正在使用链接到我的index.html的反应脚本。

当我直接打开index.html时,我的反应脚本正常工作,页面格式正确。但是,当我尝试通过我的服务器打开页面时,找不到脚本,我收到404错误:

::1 - - [15/Feb/2017:16:16:24 -0500] "GET /build/react.js HTTP/1.1" 404 19

为了从我的Golang服务器访问index.html,我使用:

r.Handle("/", http.FileServer(http.Dir("./views")))

我认为问题在于使用http.FileServer来访问html。我已经尝试在各种位置查找我的构建文件夹,最近在views文件夹中,总是具有相同的结果,当直接打开html时,react脚本工作,但是当我的服务器访问html时它们不起作用。

我是否应该使用另一种方法来完成此任务,或者我是如何组织我的依赖项的?

1 个答案:

答案 0 :(得分:0)

我通过添加:

解决了这个问题
r.PathPrefix("/build/").Handler(http.StripPrefix("/build/", http.FileServer(http.Dir("./build/"))))

在我的main函数中,以便为react脚本提供服务。我的文件结构是:

 main.go
 views
 -- index.html (views/index.html)
 build
 -- react.js (build/react.js)
 -- react-dom.js (build/react.js)
 -- other react scripts...

希望这有助于其他可能正在处理此问题的人。