Vue打包后,css引入的图片等资源找不到路径的问题

3 篇文章 0 订阅
Vue 在npm run dev 的时候,图片背景等正常显示,npm run build后,报错,提示图片找不到。


原因: npm run dev 时候,加载资源是绝对路径

           npm run build 时候,加载资源是相对路径,且文件目录已改变。

 默认情况下为:


      index.html
      static
      | --img
          | --图片.jpg
      | --css
          | --app.css
      | --js

          | --app.js


打包后,不管原先的图片资源在哪里,路径通通变成static/img/xxxx ,若在HTML里的IMG标签的src引入图片,则正常显示,因为路径是从 index.html 开始寻找的,所以static/img/xxxx是能正确访问到图片。

 但是在css/app.css里,在当前的CSS目录下,无 static/img 路径,所以资源找不到。


解决办法:

 打开build / utils.js,在绿色位置加入 publicPath:'../../' ,(如果自己更改了打包时候的路径,请自行匹配)

 该设置会把css所有引入的资源的路径变成 ../../static/img/ ,这样就能找到资源了。

如下:

if( options.extract){ 

      return ExtractTextPlugin.extract({         

         use: loaders,

         fallback: 'vue-style-loader',

           publicPath:'../ ../'
      })
   } else {
      return ['vue-style-loader'].concat(loaders)
   }


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值