如何通过虚拟目录在IIS上部署Vue.js应用程序?

如何通过虚拟目录在IIS上部署Vue.js应用程序?,iis,vue.js,vuejs2,vue-component,vue-router,Iis,Vue.js,Vuejs2,Vue Component,Vue Router,我需要通过虚拟目录在IIS上部署Vue.js应用程序,但在部署它时,我必须更改路由以包含虚拟目录名 我原来的路线是这样的: export const routes = [ { path: '', component: Default, props: true }, { path: '/Path', component: Path, props: true }, { path: '/Path/:IdPath', component: PathForm, props: tru

我需要通过虚拟目录在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 }
];
但为了工作,我必须更改路由以包含虚拟目录名,如下所示:

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应用程序以包含新的虚拟目录名


有没有办法使这个dinamic?

如果您使用的是webpack cli,您可以做的一件事是为您的目录(主要是vuejs根目录)提供一个
别名
。在
webpack.config.js中,在以下示例中:

alias: {
  'vue$': 'vue/dist/vue.esm.js',
  '@': path.resolve(__dirname, 'src')
},

@
将是您的
/src
目录的别名。如果更改此选项以反映当前的vue根目录,则可以毫无问题地迁移应用程序

您需要配置publicPath,默认情况下,它设置为“/”,例如,如果查看生成的index.html,您将看到:

  <script type="text/javascript" src="/app.js"></script></body>
有关更多信息,请参阅Vue官方文档