欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

部署项目的问题(一)—— vue工程打包上线样式错乱问题

程序员文章站 2024-01-28 16:01:58
...

1、 打开index.html一片空白

参考:链接: link.
修改build对象里的assetsPublicPath为’./’

assetsPublicPath: './'

2、ElementUI样式丢失

参考:链接: link.
这里尝试完前三种:

1.main.js样式引入顺序问题

调整了import的顺序(可能是被第三方组件样式覆盖了,router放在最后引入,就可以实现组件样式在第三方样式之后渲染)

import Vue from 'vue'
import App from './App'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import '@/assets/css/reset.css'
import myBread from '@/components/cuscom/myBread.vue'
import router from './router'
import http from '@/plugins/http.js'
import moment from 'moment'

2.注释/build/webpack.prod.conf.js文件的代码

new OptimizeCSSPlugin({
	      cssProcessorOptions: config.build.productionSourceMap
	        ? { safe: true, map: { inline: false } }
	        : { safe: true }
	    }),

因为webpack编译会发生css去重的问题,在打包的过程时会过滤掉重复的css类或样式代码,虽然有时候不重复的也会被过滤掉

3.添加使用范围样式

scoped是H5的新特性,它限制样式只适用于当前组件,避免组件间的样式干扰。

将所有<style>

修改为

<style scoped>

以上三步完成以后,页面能展示部分样式,效果如下:

图片: 部署项目的问题(一)—— vue工程打包上线样式错乱问题

可以看出图标样式不能正常显示
控制台报错情况如下:
Failed to load resource: net::ERR_FILE_NOT_FOUND
部署项目的问题(一)—— vue工程打包上线样式错乱问题

4.显示图标样式

webpack utils.js 修改:(build目录下utils.js)
添加 publicPath: ‘…/…/’

if (options.extract) {
      return ExtractTextPlugin.extract({
        use: loaders,
        fallback: 'vue-style-loader',
        publicPath: '../../'
      })
    } else {
      return ['vue-style-loader'].concat(loaders)
    }

部署项目的问题(一)—— vue工程打包上线样式错乱问题
终于,所有样式都正常了 ????