解决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 相关文章推荐
javascript+dom树型菜单类,希望朋友们一起进步
May 03 Javascript
原生js实现模拟滚动条
Jun 15 Javascript
JavaScript Math 对象常用方法总结
Apr 28 Javascript
JS判断是否在微信浏览器打开的简单实例(推荐)
Aug 24 Javascript
js中获取键盘事件的简单实现方法
Oct 10 Javascript
基于vue2.0+vuex+localStorage开发的本地记事本示例
Feb 28 Javascript
Vue仿手机qq的实例代码(demo)
Sep 08 Javascript
Bootstrap4如何定制自己的颜色和风格
Feb 26 Javascript
关于vue中 $emit的用法详解
Apr 12 Javascript
详解Vue取消eslint语法限制
Aug 04 Javascript
JavaScript实现的前端AES加密解密功能【基于CryptoJS】
Aug 28 Javascript
layui自定义ajax左侧三级菜单
Jul 26 Javascript
浅谈在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制作静态网站的模板框架(四)
2006/10/09 PHP
PHP中通过ADO调用Access数据库的方法测试不通过
2006/12/31 PHP
一个php导出oracle库的php代码
2009/04/20 PHP
php中隐形字符65279(utf-8的BOM头)问题
2014/08/16 PHP
PHP使用mkdir创建多级目录的方法
2015/12/22 PHP
laravel-admin的多级联动方法
2019/09/30 PHP
Laravel (Lumen) 解决JWT-Auth刷新token的问题
2019/10/24 PHP
JavaScript CSS修改学习第三章 修改样式表
2010/02/19 Javascript
javascript学习笔记(十九) 节点的操作实现代码
2012/06/20 Javascript
JS/jQuery实现默认显示部分文字点击按钮显示全部内容
2013/05/13 Javascript
关闭时刷新父窗口两种方法
2014/05/07 Javascript
JS实现的生成随机数的4个函数分享
2015/02/11 Javascript
HTML5实现留言和回复页面样式
2015/07/22 Javascript
javascript实现查找数组中最大值方法汇总
2016/02/13 Javascript
JavaScript数组去重的两种方法推荐
2016/04/05 Javascript
JQuery 在文档中查找指定name的元素并移除的实现方法
2016/05/19 Javascript
jQuey将序列化对象在前台显示地实现代码(方法总结)
2016/12/13 Javascript
JavaScript中的子窗口与父窗口的互相调用问题
2017/02/08 Javascript
vue-router:嵌套路由的使用方法
2017/02/21 Javascript
js监听html页面的上下滚动事件方法
2018/09/11 Javascript
angularJs中json数据转换与本地存储的实例
2018/10/08 Javascript
VUE+Element UI实现简单的表格行内编辑效果的示例的代码
2018/10/31 Javascript
基于JS抓取某高校附近共享单车位置 使用web方式展示位置变化代码实例
2019/08/27 Javascript
基于layui内置模块(element常用元素的操作)
2019/09/20 Javascript
JS合并两个数组的3种方法详解
2019/10/24 Javascript
python如何求解两数的最大公约数
2018/09/27 Python
Python3爬虫学习之爬虫利器Beautiful Soup用法分析
2018/12/12 Python
python中slice参数过长的处理方法及实例
2020/12/15 Python
python 基于Apscheduler实现定时任务
2020/12/15 Python
HTML5中的Scoped属性使用实例
2014/04/23 HTML / CSS
巧克力领导品牌瑞士莲美国官网:Lindt Chocolate美国
2016/08/25 全球购物
Europcar英国:英国汽车和货车租赁
2017/01/21 全球购物
物流专业大学生的自我鉴定
2013/11/13 职场文书
学生检讨书范文
2014/10/30 职场文书
单位租房协议范本
2014/12/03 职场文书
用Python的绘图库(matplotlib)绘制小波能量谱
2021/04/17 Python