Deploy VueJS App in a subdirectory
Assuming you are using the webpack template from vue-cli, you need to edit the assetsPublicPath
property in config/index.js - notice there is one for build
and for dev
Check out Handling Static Assets section in the docs for more info.
Update:
Newer link for CLI v3+ users: https://cli.vuejs.org/guide/html-and-static-assets.html
Notice the property is just called publicPath
If you installed your app with
npm install -g @vue/cli
vue ui
then you should create file vue.config.js in the top project folder (where package.json is)
and paste like above.
For Vue CLI 3 it is pretty simple.
Edit your vue.config.js
(if there is none, create it in project root directory) and add following lines:
module.exports = {
baseUrl: "./"
};
Or whatever sub-directory you want.
You may also decide according to NODE_ENV
. See the docs.
module.exports = {
baseUrl: process.env.NODE_ENV === 'production'
? '/production-sub-path/'
: '/'
}
UPDATE
As mentioned in comments below, for Vue CLI 3.3+ use publicPath
property instead of baseUrl
.