我需要在IIS上通过虚拟目录部署Vue.js应用程序,但是当我部署它时,我必须更改路由以包含虚拟目录名称。
我的原始路线是这样的:
export const routes = [
{ path: '', component: Default, props: true },
{ path: '/Path', component: Path, props: true },
{ path: '/Path/:IdPath', component: PathForm, props: true }
];
但是为了工作,我不得不改变我的路线以包括虚拟目录名称,如:
export const routes = [
{ path: '/VirtualDirectory', component: Default, props: true },
{ path: '/VirtualDirectory/Path', component: Path, props: true },
{ path: '/VirtualDirectory/Path/:IdPath', component: PathForm, props: true }
];
这是一个问题,因为如果我需要更改我的服务器或虚拟目录,我将不得不重新部署我的Vue.js应用程序以包含新的虚拟目录名。
有没有办法制作这种恐龙?
答案 0 :(得分:0)
如果你正在使用webpack-cli,你可以做的一件事就是给你的目录(主要是vuejs root dir)alias
。在webpack.config.js
内,所以,在以下示例中:
alias: {
'vue$': 'vue/dist/vue.esm.js',
'@': path.resolve(__dirname, 'src')
},
@
将是您的/src
目录的别名。如果您更改此项以反映您当前的vue root,那么您可以毫无问题地迁移您的应用。
答案 1 :(得分:0)
您将需要配置 publicPath ,默认情况下此设置为“ /”,例如如果您查看生成的index.html,将会看到:
<script type="text/javascript" src="/app.js"></script></body>
注意上面的“ /app.js”。
您可以通过在项目的根目录中添加 vue.config.js 文件并添加 publicPath 设置来进行配置:
module.exports = {
publicPath: '/my-virtual-directory'
}
有关更多信息,请参见Vue官方文档https://cli.vuejs.org/config/#publicpath。