Веб-сокет сервера разработки хоста Vue в подкаталоге - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь разместить сервер разработки Vue (включая веб-сокет) в подкаталоге моего домена с помощью nginx, но при моей текущей настройке сервер vue отвечает на запросы вместо сервера разработки веб-пакетов.

Чтобы было ясно, я хочу, чтобы мое приложение размещалось на https://xxx.yyy/zzz/, я хочу, чтобы ресурсы и т. Д. Размещались в https://xxx.yyy/zzz/path/to/asset, и я хочу, чтобы сервер разработки веб-пакетов размещался в https://xxx.yyy/zzz/sockjs-node/info?t=....Я почти уверен, что это возможно без специальной установки nginx, потому что она работает без подкаталога.

Вот мои настройки:

nginx

server {
    # server name, ssl, etc

    location /test/ {
        proxy_pass http://localhost:8080;
    }
}

Создайте проект

$ vue create -d hello-world

vue.config.js

module.exports = {
    publicPath: '/test/',
    devServer: {
        public: "0.0.0.0/test",
        disableHostCheck: true,
    }
}

Затем запустите

$ npm run serve

клиент отправляет запросы во все нужные места, но

$ curl https://xxx.yyy/test/sockjs-node/info

возвращает index.html, тогда как

$ curl localhost:8080/sockjs-node/info

возвращаетожидаемая информация о сокете.Я также попытался изменить настройку nginx на proxy_pass http://localhost:8080/;, но из-за этого index.html не рендерится, когда я перехожу на https://xxx.yyy/test/, потому что он ожидает путь и не пересылается.Когда я также изменяю publicPath на /, я не могу заставить клиента искать ресурсы в правильном подкаталоге.

Есть ли правильный способ сделать это?

...