解决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 相关文章推荐
jQuery 学习入门篇附实例代码
Mar 16 Javascript
js优化针对IE6.0起作用(详细整理)
Dec 25 Javascript
js返回上一页并刷新的多种实现方法
Feb 26 Javascript
JavaScript中判断原生函数检查function是否是原生代码
Sep 09 Javascript
jquery单击事件和双击事件冲突解决方案
Mar 02 Javascript
Bootstrap基本插件学习笔记之Tooltip提示工具(18)
Dec 08 Javascript
详解JavaScript数组过滤相同元素的5种方法
May 23 Javascript
日期时间范围选择插件:daterangepicker使用总结(必看篇)
Sep 14 Javascript
bootstrap-treeview实现多级树形菜单 后台JSON格式如何组织?
Jul 26 Javascript
关于layui的下拉搜索框异步加载数据的解决方法
Sep 28 Javascript
js的Object.assign用法示例分析
Mar 05 Javascript
js Math数学简单使用操作示例
Mar 13 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 array_push 数组函数
2009/12/26 PHP
php中的Base62类(适用于数值转字符串)
2013/08/12 PHP
PHP 错误处理机制
2015/07/06 PHP
PHP设计模式之观察者模式实例
2016/02/22 PHP
php+jQuery+Ajax简单实现页面异步刷新
2016/08/08 PHP
php版微信公众平台实现预约提交后发送email的方法
2016/09/26 PHP
php实现的AES加密类定义与用法示例
2018/01/29 PHP
PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
2019/09/08 PHP
JQuery 动态扩展对象之另类视角
2010/05/25 Javascript
使用Math.floor与Math.random取随机整数的方法详解
2013/05/07 Javascript
页面右下角弹出提示框示例代码js版
2013/08/02 Javascript
基于jQuery插件实现环形图标菜单旋转切换特效
2015/05/15 Javascript
微信小程序 详解页面跳转与返回并回传数据
2017/02/13 Javascript
Hexo已经看腻了,来手把手教你使用VuePress搭建个人博客
2018/04/26 Javascript
jquery获取file表单选择文件的路径、名字、大小、类型
2019/01/18 jQuery
微信小程序之数据绑定原理解析
2019/08/14 Javascript
element form 校验数组每一项实例代码
2019/10/10 Javascript
Python使用combinations实现排列组合的方法
2018/11/13 Python
在python中对变量判断是否为None的三种方法总结
2019/01/23 Python
python查询文件夹下excel的sheet名代码实例
2019/04/02 Python
python交易记录整合交易类详解
2019/07/03 Python
33个Python爬虫项目实战(推荐)
2019/07/08 Python
jupyter 使用Pillow包显示图像时inline显示方式
2020/04/24 Python
python删除某个目录文件夹的方法
2020/05/26 Python
Python实现清理微信僵尸粉功能示例【基于itchat模块】
2020/05/29 Python
Django:使用filter的pk进行多值查询操作
2020/07/15 Python
pycharm中选中一个单词替换所有重复单词的实现方法
2020/11/17 Python
解决Pycharm 运行后没有输出的问题
2021/02/05 Python
最好的商品表达自己:Cafepress
2019/09/04 全球购物
ORLY官网:美国专业美甲一线品牌
2019/12/11 全球购物
小学生自我鉴定
2013/10/12 职场文书
史学专业毕业生求职信
2014/05/09 职场文书
党委书记个人检查对照材料思想汇报
2014/10/11 职场文书
nginx配置proxy_pass中url末尾带/与不带/的区别详解
2021/03/31 Servers
python 模块重载的五种方法
2021/04/24 Python
go语言-在mac下brew升级golang
2021/04/25 Golang