本文共 1936 字,大约阅读时间需要 6 分钟。
在项目打包之前,路由跳转是正常的,但打包后出现路由无法跳转且报错。将index.js
中的mode
从'history'
改为'hash'
。这是一个临时的解决方案,适用于不需要后端支持的情况。
const createRouter = () => new Router({ mode: 'hash', base: 'lighthouse', scrollBehavior: () => ({ y: 0 }), routes: constantRoutes})
原因分析:
建议:
将config/index.js
中的assetsPublicPath
配置为相对路径,以解决打包后的背景图片加载问题。
build: { index: path.resolve(__dirname, '../dist/index.html'), assetsRoot: path.resolve(__dirname, '../dist'), assetsSubDirectory: 'static', assetsPublicPath: './', // 修改为相对路径 productionSourceMap: true, devtool: '#source-map', productionGzip: false, productionGzipExtensions: ['js', 'css'], bundleAnalyzerReport: process.env.npm_config_report}
原因分析:
assetsPublicPath
配置错误会导致静态资源无法正确加载。建议:
static
目录,且背景图片位于此目录下。dist/static
目录下的文件路径是否正确。在utils.js
中添加publicPath
为'../../'
,解决打包后组件图标显示问题。
if (options.extract) { return ExtractTextPlugin.extract({ use: loaders, publicPath: '../../', // 解决Element UI中组件图标不显示问题 fallback: 'vue-style-loader' })} else { return ['vue-style-loader'].concat(loaders)}
原因分析:
建议:
static/css
目录下。dist/static/css
目录下的文件路径是否正确。打包后,Iconfont字体文件路径错误。通过检查webpack.base.conf.js
,确保文件加载路径正确。
// 在webpack.base.conf.js中添加以下配置extractCSS: { publicPath: '../../'}
原因分析:
解决方法:
dist/static/fonts
目录下包含Iconfont字体文件。路由问题:
history
模式,请确保后端支持。hash
模式,请优化项目结构,避免过多路由跳转。背景图片问题:
static
目录下有背景图片文件。assetsPublicPath
配置是否正确。Element UI图标问题:
static/css
目录下。utils.js
中的publicPath
配置是否正确。Iconfont字体问题:
dist/static/fonts
目录下的文件路径是否正确。通过以上方法,项目打包后问题应得到有效解决。
转载地址:http://ckpc.baihongyu.com/