解决vue项目打包后提示图片文件路径错误的问题


Posted in Javascript onJuly 04, 2018

vue项目打包后在production模式下提示图片 ‘404(not found),在dev环境下好好的,打包了就提示这个错误。这是为什么呢,以前第一次使用vue-cli构建项目的的时候只有两个图片文件,当时部署后报错路径问题, 当时的想法就是简单粗暴,直接在build好的文件修改了文件路径,再后来项目中遇到了一大堆静态资源,修改路径显然是不行的,看了一下生成文件大概知道是文件目录改变了,所以引用的路径也要随之改变,网上最简单的方法是修改 ‘config/index.js'文件中的 build模块:

// emplate for index.html
 index: path.resolve(__dirname, '../dist/index.html'),
 // Paths
 assetsRoot: path.resolve(__dirname, '../dist'),
 assetsSubDirectory: 'static',
 assetsPublicPath: './',

       将默认的改为上文这样子,静态文件目录改为static,静态路径改为‘./',即相对路径。 ok了?

 试了一下还是有404,当时想到的就是难道只能在组件data中以“require”的方式一个一个的引入了吗? 这个属于js中以模块引入方式确实可行,但是太繁琐,想一下,使用这张图的时候在html文档结构中以 “:bind”的方式将资源以code的方式加在html文档中,不是说这样不行,这样也是可以实现想要的效果的,但是这样做会导致不仅文档结构不清晰,冗余度高,维护起来麻烦,而且资源很多的时候这是一项庞大且繁琐的工作,徒增加无用功。

这样第三种方法应用而生,就是修改‘build'目录下的utils.js文件,将文件中的“generateLoaders”函数改为:

pluginfunction generateLoaders (loader, loaderOptions) {
  const loaders = options.usePostCSS ?
   [cssLoader,   postcssLoader] : [cssLoader]
  if (loader) {
   loaders.push({
    loader: loader + '-loader',
    options: Object.assign({}, loaderOptions, {
     sourceMap: options.sourceMap
    })
   })
  }
  // Extract CSS when that option is specified
  // (which is the case during production build)
  if (options.extract) {
   return ExtractTextPlugin.extract({
    use: loaders,
    fallback: 'vue-style-loader',
    publicPath:'../../'         //add
   })
  } else {
   return ['vue-style-loader'].concat(loaders)
  }
 }

重点是if…else判断中的那个”publicPath:'../../' ”

build一下,部署在服务端,ok可行,这样就可以愉快的在style中使用图片资源了。

总结

以上所述是小编给大家介绍的解决vue项目打包后提示图片文件路径错误的问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
两个SUBMIT按钮,如何区分处理
Aug 22 Javascript
jquery ajax提交表单数据的两种方式
Nov 24 Javascript
jQuery 开发者应该注意的9个错误
May 03 Javascript
js中的this关键字详解
Sep 25 Javascript
javascript确认框的三种使用方法
Dec 17 Javascript
jQuery EasyUI框架中的Datagrid数据表格组件结构详解
Jun 09 Javascript
Reactjs实现通用分页组件的实例代码
Jan 19 Javascript
浅谈Vue2.0中v-for迭代语法的变化(key、index)
Mar 06 Javascript
使用javascript做在线算法编程
May 25 Javascript
微信小程序如何实现精确的日期时间选择器
Jan 21 Javascript
javascript实现点击按钮切换轮播图功能
Sep 23 Javascript
vue+iview实现分页及查询功能
Nov 17 Vue.js
浅谈在react中如何实现扫码枪输入
Jul 04 #Javascript
Redux实现组合计数器的示例代码
Jul 04 #Javascript
用Node编写RESTful API接口的示例代码
Jul 04 #Javascript
微信小程序踩坑记录之解决tabBar.list[3].selectedIconPath大小超过40kb
Jul 04 #Javascript
JS实现点击按钮可实现编辑功能
Jul 03 #Javascript
详解vue-cli中模拟数据的两种方法
Jul 03 #Javascript
echarts同一页面中四个图表切换的js数据交互方法示例
Jul 03 #Javascript
You might like
PHP源代码数组统计count分析
2011/08/02 PHP
php获取参数的几种方法总结
2014/02/18 PHP
PHP APC配置文件2套和参数详解
2014/06/11 PHP
基于PHP代码实现中奖概率算法可用于刮刮卡、大转盘等抽奖算法
2015/12/20 PHP
分享PHP守护进程类
2015/12/30 PHP
给大家分享几个常用的PHP函数
2017/01/15 PHP
yii2使用gridView实现下拉列表筛选数据
2017/04/10 PHP
PHP构造二叉树算法示例
2017/06/21 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
PHP使用JpGraph绘制折线图操作示例【附源码下载】
2019/10/18 PHP
PHP8.0新功能之Match表达式的使用
2020/07/19 PHP
javascript 全角转换实现代码
2009/07/17 Javascript
通过身份证号得到出生日期和性别的js代码
2009/11/23 Javascript
js使用栈来实现10进制转8进制与取除数及余数
2014/06/11 Javascript
javascript从image转换为base64位编码的String
2014/07/29 Javascript
Bootstrap3学习笔记(二)之排版
2016/05/20 Javascript
Vuejs第六篇之Vuejs与form元素实例解析
2016/09/05 Javascript
JS实现自动阅读单词(有道单词本添加功能)
2016/11/14 Javascript
JS获取当前时间的年月日时分秒及时间的格式化的方法
2019/12/18 Javascript
antd 表格列宽自适应方法以及错误处理操作
2020/10/27 Javascript
Python Flask-web表单使用详解
2017/11/18 Python
利用python实现简单的邮件发送客户端示例
2017/12/23 Python
Python动刷新抢12306火车票的代码(附源码)
2018/01/24 Python
Python中循环后使用list.append()数据被覆盖问题的解决
2018/07/01 Python
简单了解pytest测试框架setup和tearDown
2020/04/14 Python
Python importlib动态导入模块实现代码
2020/04/16 Python
Python3 用什么IDE开发工具比较好
2020/11/28 Python
Vrbo西班牙:预订您的度假公寓(公寓、乡村房屋…)
2020/04/27 全球购物
设计毕业生简历中的自我评价
2013/10/01 职场文书
公务员的自我鉴定
2013/10/26 职场文书
会计岗位描述
2014/02/22 职场文书
小学生元旦感言
2014/02/26 职场文书
2014年后勤工作总结范文
2014/12/16 职场文书
个人收入证明范本
2015/06/12 职场文书
MySQL中VARCHAR与CHAR格式数据的区别
2021/05/26 MySQL
vue使用echarts实现折线图
2022/03/21 Vue.js