2017-02-15 9 views
1

Я работаю над проектом базы данных Golang, в котором я бы хотел использовать React для создания front-end. Я использую сценарии реакции, связанные с моим index.html.React Scripts не найден при использовании GoLang http.FileServer

Когда я открываю свой index.html напрямую, мои скрипты реагирования работают, и страница правильно отформатирована. Однако, когда я пытаюсь открыть страницу через мой сервер, сценарии не будут найдены, и я получаю сообщение об ошибке 404:

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

Для того, чтобы получить доступ к index.html с моего сервера Golang я использую:

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

Я думаю, проблема связана с использованием http.FileServer для доступа к html. Я попытался найти папку с моей сборкой в ​​самых разных местах, совсем недавно в папке представлений, всегда с тем же результатом, что при открытии html непосредственно работают сценарии реагирования, но они не работают, когда html обращается к моему серверу.

Есть ли другой метод, который я должен использовать для достижения этого, или это проблема с тем, как я организую свои зависимости?

+0

Также важно отметить: для маршрутизации я использую Gorilla (https://github.com/gorilla/mux). –

+0

r приходит от r: = mux.NewRouter() –

+0

, пожалуйста, отправьте текст с кодом, чтобы мы могли его воспроизвести. –

ответ

0

Я решил эту проблему, добавив:

r.PathPrefix("/build/").Handler(http.StripPrefix("/build/", http.FileServer(http.Dir("./build/")))) 

в моей главной функции для того, чтобы служить реагировать сценарии. Моя файлообменная структура:

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

Надеюсь, это поможет любому, кто может иметь дело с этой проблемой.