Vue, как мне прокси все, кроме указанного c пути? - PullRequest
0 голосов
/ 15 января 2020

Я бы хотел, чтобы webpack-dev-server (под Vue CLI) проксировал все, что не начинается с /app до http://127.0.0.1:8000, как мне этого добиться?

Например:

Я пробовал это внутри моего vue.config.js:

module.exports = {
    configureWebpack: {
        devServer: {
            port: 8080,
            proxy: 'http://127.0.0.1:8000!/app/**',
        }
    }
}

Ответы [ 2 ]

1 голос
/ 15 января 2020

Вы можете сделать это, определив функцию обхода в настройках прокси-сервера следующим образом.

devServer: {
    index: '', // specify to enable root proxying
    proxy: [{
        context: () => true,
        target: 'http://127.0.0.1:8000',
        bypass: (req) => {
          if (req.url.startsWith('/app')) {
            return req.url // do not proxy
          }
          return false
        }
    }],
}
0 голосов
/ 15 января 2020

Согласно ответу Нафи, следующий код позволяет мне получить доступ к /app/, и каждый другой URL-адрес будет прокси. Все, кроме /, которое не перенаправляется на прокси.

module.exports = {
    publicPath: '/app/',

    configureWebpack: {
        devServer: {
            index: '',
            proxy: {
                '/': {
                    target: 'http://127.0.0.1:8000',
                    bypass: function(req, res, proxyOptions) {
                        if (req.url.startsWith('/app/')) {
                            return req.url;
                        }

                        return null;
                    }
                },
            },
        }
    }
}
...