diff --git a/packages/@vue/cli-service/lib/commands/serve.js b/packages/@vue/cli-service/lib/commands/serve.js index bdf0313f9e..24b5b03ec9 100644 --- a/packages/@vue/cli-service/lib/commands/serve.js +++ b/packages/@vue/cli-service/lib/commands/serve.js @@ -42,6 +42,7 @@ module.exports = (api, options) => { const prepareProxy = require('../util/prepareProxy') const launchEditorMiddleware = require('launch-editor-middleware') const validateWebpackConfig = require('../util/validateWebpackConfig') + const isAbsoluteUrl = require('../util/isAbsoluteUrl') // resolve webpack config const webpackConfig = api.resolveWebpackConfig() @@ -89,7 +90,7 @@ module.exports = (api, options) => { protocol, host, port, - options.baseUrl + isAbsoluteUrl(options.baseUrl) ? '/' : options.baseUrl ) const proxySettings = prepareProxy( diff --git a/packages/@vue/cli-service/lib/util/isAbsoluteUrl.js b/packages/@vue/cli-service/lib/util/isAbsoluteUrl.js new file mode 100644 index 0000000000..a163b09521 --- /dev/null +++ b/packages/@vue/cli-service/lib/util/isAbsoluteUrl.js @@ -0,0 +1,4 @@ +module.exports = function isAbsoluteUrl (url) { + // A URL is considered absolute if it begins with "://" or "//" + return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(url) +}