美文网首页
vue+webpack 绑定src找不到图片报404

vue+webpack 绑定src找不到图片报404

作者: 苏日俪格 | 来源:发表于2018-12-07 11:38 被阅读19次

    我的代码:

    // html代码
    <div class="col-xs-5" v-for="item in aTheme">
        <img :src="item.src" class="img-thumbnail">
        <p class="detail">{{ item.title }}</p>
    </div>
    
    // data返回的数据
    aTheme: [{
        src: '../../assets/images/theme-default.png',
        title: '默认主题'
    }, {
        src: '../../assets/images/theme-custom.png',
        title: '自定义主题'
    }]
    

    运行项目发现报错:theme-custom.png:1 GET http://localhost:8080/assets/images/theme-custom.png 404 (Not Found)

    原因是在webpack中会将图片图片来当做模块来用,因为是动态加载的,所以url-loader将无法解析图片地址,然后npm run dev 或者npm run build之后导致路径没有被加工

    我的解决办法是加一个动态引入require():

    aTheme: [{
        src: require('../../assets/images/theme-default.png'),
        title: '默认主题'
    }, {
        src: require('../../assets/images/theme-custom.png'),
        title: '自定义主题'
    }]
    

    然后重新build一下项目, 运行之后发现就好使了. 下面有一个实时build搭建项目解析资源的方法:

    在webpack执行命令之后可以添加一些参数,这些参数都有自己的作用,下面是参数列表:

    
    $ webpack --config XXX.js //使用另一份配置文件(比如webpack.config2.js)来打包
    
    $ webpack --watch //监听变动并自动打包
    
    $ webpack -p//压缩混淆脚本,这个非常非常重要!
    
    $ webpack -d//生成map映射文件,告知哪些模块被最终打包到哪里了其中的 
    
    $ webpack --progress //显示进度条
    
    $ webpack --color //添加颜色
    
    

    -p 是很重要的参数,曾经一个未压缩的 700kb 的文件,压缩后直接降到 180kb (主要是样式这块一句就独占一行脚本,导致未压缩脚本变得很大) 。

    这里我们重点说一下 webpack --watch这个参数,这个参数就要的作用就是监听文件是否有改变,有改变就会重新编译有改变的文件。

    我在我的package.json文件中,加入了这些字段,完成自动编译,这样热更新也都有了完全不用再考虑手动start手动build了

    "build": "webpack -d --progress --watch --display-error-details --devtool cheap-source-map"
    

    其他关于webpack的配置可以查看我的这边文章哦→Vue 2.x + Webpack 4.x的那些事---萌新必备

    相关文章

      网友评论

          本文标题:vue+webpack 绑定src找不到图片报404

          本文链接:https://www.haomeiwen.com/subject/qyxthqtx.html