解决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同步Import,同步调用外部js的方法
Jul 08 Javascript
原来Jquery.load的方法可以一直load下去
Mar 28 Javascript
实现web打印的各种方法介绍及实现代码
Jan 09 Javascript
jsp网页搜索结果中实现选中一行使其高亮
Feb 17 Javascript
JS实现下拉菜单赋值到文本框的方法
Aug 18 Javascript
理解javascript定时器中的单线程
Feb 23 Javascript
老生常谈js-react组件生命周期
May 02 Javascript
浅谈vue.js导入css库(elementUi)的方法
Mar 09 Javascript
详解基于DllPlugin和DllReferencePlugin的webpack构建优化
Jun 28 Javascript
小程序云开发实战小结
Oct 25 Javascript
vue打包之后生成一个配置文件修改接口的方法
Dec 09 Javascript
JS数组转字符串实现方法解析
Sep 04 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
基于mysql的论坛(2)
2006/10/09 PHP
PHP7新特性
2021/03/09 PHP
jquery设置按钮停顿3秒不可用
2014/03/07 Javascript
JavaScript fontsize方法入门实例(按照指定的尺寸来显示字符串)
2014/10/17 Javascript
Javascript优化技巧之短路表达式详细介绍
2015/03/27 Javascript
充分发挥Node.js程序性能的一些方法介绍
2015/06/23 Javascript
jQuery 实现评论等级好评差评特效
2016/05/06 Javascript
BootStrap 智能表单实战系列(二)BootStrap支持的类型简介
2016/06/13 Javascript
AngularJS  $on、$emit和$broadcast的使用
2016/09/05 Javascript
jQuery双向列表选择器DIV模拟版
2016/11/01 Javascript
Vue中img的src属性绑定与static文件夹实例
2017/05/18 Javascript
JS实现table表格固定表头且表头随横向滚动而滚动
2017/10/26 Javascript
javascript、php关键字搜索函数的使用方法
2018/05/29 Javascript
JavaScript实现仿Clock ISO时钟
2018/06/29 Javascript
Bootstrap Table中的多选框删除功能
2018/07/15 Javascript
vue-router判断页面未登录自动跳转到登录页的方法示例
2018/11/04 Javascript
点击按钮弹出模态框的一系列操作代码实例
2019/03/29 Javascript
vue基础知识--axios合并请求和slot
2020/06/04 Javascript
通过JS判断网页是否为手机打开
2020/10/28 Javascript
Python help()函数用法详解
2014/03/11 Python
Python里隐藏的“禅”
2014/06/16 Python
Python正则表达式匹配ip地址实例
2014/10/09 Python
常见python正则用法的简单实例
2016/06/21 Python
TensorFlow损失函数专题详解
2018/04/26 Python
pyqt5 QScrollArea设置在自定义侧(任何位置)
2019/09/25 Python
PyTorch笔记之scatter()函数的使用
2020/02/12 Python
Python找出列表中出现次数最多的元素三种方式
2020/02/24 Python
日本化妆品植村秀俄罗斯官方网站:Shu Uemura俄罗斯
2020/02/01 全球购物
啤酒销售实习自我鉴定
2013/09/24 职场文书
先进事迹报告会感言
2014/01/24 职场文书
2014年高考决心书
2014/03/11 职场文书
白鹤梁导游词
2015/02/06 职场文书
信息技术课教学反思
2016/02/23 职场文书
学生会2016感恩节活动小结
2016/04/01 职场文书
HTML+CSS+JS实现图片的瀑布流布局的示例代码
2021/04/22 HTML / CSS
Redis基本数据类型哈希Hash常用操作命令
2022/06/01 Redis