解决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 相关文章推荐
IE和Firefox下event事件杂谈
Dec 18 Javascript
基于Jquery的简单&简陋Tabs插件代码
Feb 09 Javascript
js 全兼容可高亮二级缓冲折叠菜单
Jun 04 Javascript
js实现全屏漂浮广告移入光标停止移动
Dec 02 Javascript
jQuery选择器源码解读(二):select方法
Mar 31 Javascript
jQuery实现类似老虎机滚动抽奖效果
Aug 06 Javascript
jQuery简单实现中间浮窗效果
Sep 04 Javascript
Vue keep-alive实践总结(推荐)
Aug 31 Javascript
vue利用v-for嵌套输出多层对象,分别输出到个表的方法
Sep 07 Javascript
vue与原生app的对接交互的方法(混合开发)
Nov 28 Javascript
layui 上传文件_批量导入数据UI的方法
Sep 23 Javascript
解读Vue组件注册方式
May 15 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
织梦模板标记简介
2007/03/11 PHP
用PHP读取超大文件的实例代码
2012/04/01 PHP
PHP单例模式详解及实例代码
2016/12/21 PHP
php 调用百度sms来发送短信的实现示例
2018/11/02 PHP
jquery 应用代码 方便的排序功能
2010/02/06 Javascript
jquery获得下拉框值的代码
2011/08/13 Javascript
JavaScript将Table导出到Excel实现思路及代码
2013/03/13 Javascript
js鼠标滑轮滚动事件绑定的简单实例(兼容主流浏览器)
2014/01/14 Javascript
JQuery异步获取返回值中文乱码的解决方法
2015/01/29 Javascript
JS解析XML文件和XML字符串详解
2015/04/17 Javascript
javascript实现类似百度分享功能的方法
2015/07/27 Javascript
JS实现pasteHTML兼容ie,firefox,chrome的方法
2016/06/22 Javascript
jQuery实现鼠标跟随效果
2017/02/20 Javascript
vue.js移动端app之上拉加载以及下拉刷新实战
2017/09/11 Javascript
详解vue的数据劫持以及操作数组的坑
2019/04/18 Javascript
layui table 表格模板按钮的实例代码
2019/09/21 Javascript
layui实现数据表格隐藏列的示例
2019/10/25 Javascript
[01:11:08]Winstrike vs NB 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
[42:24]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第三场 11.27
2020/12/01 DOTA
在Python中使用base64模块处理字符编码的教程
2015/04/28 Python
Python根据区号生成手机号码的方法
2015/07/08 Python
pygame游戏之旅 按钮上添加文字的方法
2018/11/21 Python
python实现自动获取IP并发送到邮箱
2018/12/26 Python
python+opencv打开摄像头,保存视频、拍照功能的实现方法
2019/01/08 Python
python 移动图片到另外一个文件夹的实例
2019/01/10 Python
Python魔法方法详解
2019/02/13 Python
Python实现的远程文件自动打包并下载功能示例
2019/07/12 Python
Python Sympy计算梯度、散度和旋度的实例
2019/12/06 Python
css3绘制百度的小度熊
2018/10/29 HTML / CSS
实习教师自我鉴定
2013/12/09 职场文书
股东出资证明书(正规版)
2014/09/24 职场文书
2014年初三班主任工作总结
2014/12/05 职场文书
有关骆驼祥子的读书笔记
2015/06/26 职场文书
毕业生求职自荐信(2016最新版)
2016/01/28 职场文书
python读取并查看npz/npy文件数据以及数据显示方法
2022/04/14 Python
详解Spring Security如何在权限中使用通配符
2022/06/28 Java/Android