vue多页面的打包路径有误怎么解决?

现在的问题是,后端需要做一个叫做 '路径拦截'的东西,于是我打包的文件夹层级关系如图所示。图片描述

既然是这样,我的build或者config该如何配置才能让login.html和index.html正常的引用Js,css等资源。并且Login.html有个登录后需要跳转到index.html。这个跳转路径又该如何写?
希望大佬不吝赐教。

阅读 3k
3 个回答

webpack的多入口文件配置,会自动生成多个入口文件,至于html这个不重要,你自己创建就可以了,只要引用的js正确就可以

手上有个项目是一样的,属于多入口项目,有3个html文件,对应有3个js入口文件
clipboard.png

config.js部分,HTMLDirs里面定义了多入口的html文件名

clipboard.png

webpack config部分 主要注意HTMLPlugins,Entries,chunks三个

let HTMLPlugins = []
let Entries = {}
let chunks = []

config.HTMLDirs.forEach((page) => {
  const htmlPlugin = new HtmlWebpackPlugin({
    filename: `${page}.html`,
    template: path.resolve(__dirname, `../src/html/${page}.html`),
    chunks: ['manifest','vendor', page],
    inject: true,
    ssUrl: config.dev.SS_URL
  });
  HTMLPlugins.push(htmlPlugin);
  Entries[page] = path.resolve(__dirname, `../src/js/${page}.js`);
})

//其他配置
plugins:[
// 其他配置
...HTMLPlugins,
new webpack.optimize.CommonsChunkPlugin({
  name: 'manifest',
  minChunks: Infinity
}),
new webpack.optimize.CommonsChunkPlugin({
  name: 'vendor',
  chunks: chunks,
  minChunks:3
}),
]

至于login跳转到index,直接window.location.href = 'index.html' 就可以了,因为就是简单的页面跳转了,不存在页面路由什么的

建议是做成类似 2 楼的动态读取的方式,不要手工配置多入口

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题