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

时间:2018-03-08 13:27:05

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

有没有办法制作这种恐龙?

2 个答案:

答案 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