vue-cli 创建项目小结 - 关于图片路径(不定期更新)

1. 关于 npm run build 后的图片找不到问题。

解决办法1(html 方式):在src目录下,创建static - images 目录,图片放这里,build会连图片一起打包。注意:static 不是放在项目根目录,而是要放在src下。因为src才是项目的根目录。

如上图,可对比下,只有2里面的图片才被正确打包。在html里面,由于我的index.vue 页面在src - page 目录下,所以这样写:

<img src="../static/images/4.jpg" width="64" alt="">

如果图片路径是在从js获取,试验了下,发现 static - images 下的图片,必须同时出现在 src目录下, 以及 src 的同级目录...我觉得这可能是和打包js的路径有关系..

{
        test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
        loader: 'url-loader', //将源文件转换成DataUrl(声明文件mimetype的base64编码)
        options: {
          limit: 10000,
          name: utils.assetsPath('img/[name].[hash:7].[ext]') //使用了[hash],不同页面引用同名但内容不一样的图片,也不会被覆盖;如果是不同位置的相同图片,可以合并成同一张,方便浏览器缓存
        }
      },

这是webpack.config.base.js。 所以 src 目录下的static的图片,被顺利打包,并且只打包引用到的图片。如果放一张没用到的图片,webpack是不会打包的(应该是这样,待去webpack官网研究,疑问太多了,一个一个来。)。

output: {
    path: config.build.assetsRoot, //打包文件中所有通过相对路径引用的资源都会被配置的路径所替换。
    filename: '[name].js',
    publicPath: process.env.NODE_ENV === 'production'
      ? config.build.assetsPublicPath
      : config.dev.assetsPublicPath
  },

那么,为什么我js里面用绝对路径,打包后也无法访问到图片呢。

所以说,js里面的图片路径,要怎么写才行。

解决办法2(js 方式):写在js里的图片路径,用import或者require导入。这个要怎么做呢..

1. require 的方式:

'data':{
     'productImg': require('../static/images/3.jpg')  
}

如果有很多张图片,每个都这样写,好麻烦啊...。优化下:

 html:
<div v-for="(item, index) in itemList" class="cart">
     <img src="" :src="imgSrc(index)" alt="">
</div>
 
  

  javaScript:

imgSrc:function (i) {
        var imgUrl = require('../static/images/' + (i+1) + '.jpg');
        return imgUrl;
      },

缺乏经验的,就是像我这样,可以用参数搞定的,结果想了半天如何用for循环输出,然后在想为什么每个都只输出第一张图片...蠢哭了我。

2. import 的方式:

import xxx from 'xx/xx/xx.jpg'

如果有很多张图片这种方式也挺烦的。

转载于:https://www.cnblogs.com/dodocie/p/7755173.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值