Не удалось подключиться к localhost:3000 из веб-приложения
Я работаю над некоторым стандартным кодом, чтобы интерфейс VueJS работал с бэкэндом на основе Go (используя gorilla/mux
для роутера):
В настоящее время у меня, кажется, все работает по большей части. Я передаю статический HTML-файл через Go и отрисовываю с него содержимое Vue, которое поставляется вместе с webpack (в настоящее время webpack-dev-server, а не физический пакет), и у меня возникла странная проблема:
В моем браузере Firefox постоянно говорит мне следующее:
Firefox can’t establish a connection to the server at http://localhost:3000/__webpack_hmr.
Тем не менее, когда я меняю компоненты Vue и сохраняю их, они автоматически обновляются в браузере, как я и ожидал. Я действительно смущен, я думаю, я не знаю, почему это происходит.
Я попытался изменить порт, на котором работает мой сервер Go, и кажется, что соединение всегда прерывается при http://localhost:<Go Server Port>/__webpack_hmr
,
Какие-нибудь мысли? Может быть, есть шаг, который я пропускаю, или установка более сложная, чем я думал.
Нужно ли запускать сервер Express и использовать Middleware на основе веб-пакетов для исправления этой ошибки? Если это так, это звучит глупо, если я использую Go для бэкэнда (зачем мне запускать два сервера?). Я делаю что-то неправильно?
Что касается стороны Go, я попытался запустить сервер Go на другом порту и запустить сервер веб-пакетов на разных портах и тому подобное, но он всегда не может подключиться к http://localhost:<Go Server Port>/__webpack_hmr
,
Может быть, это сложнее настроить, чем я думал, или, так как кажется, что он "работает", я могу спокойно проигнорировать эту ошибку? Я не знаю.
2 ответа
Если я правильно понимаю вашу проблему. ваш клиент и сервер используют разные порты, и если это так, то вы используете CORS(Cross-Origin Resource Sharing) запрос для связи с клиент-сервером. см. следующие ссылки, надеюсь, это поможет вам решить проблему с CORS (это мне очень помогает)
Удалить 'webpack-hot-middleware/client'
из вашего конфига webpack и любых ссылок в вашей кодовой базе. Это используется только для горячей перезагрузки, поэтому его можно безопасно удалить.
Поскольку вам нужна горячая перезагрузка, вы должны использовать: https://github.com/go-webpack/webpack
Этот модуль обеспечивает правильную интеграцию с веб-пакетом, поддерживает правильную перезагрузку ресурсов в процессе разработки и хэши активов для производственного кэширования.
Однако они показывают только примеры использования Gin
а также Iris
, поэтому вам может понадобиться открыть вопрос с ними для примера, основанного на чисто net/http
(при условии, что это то, что вы используете).