配置打包文件路径出错怎样解决

这次给大家带来配置打包文件路径出错怎样解决,配置打包文件路径出错解决的注意事项有哪些,下面就是实战案例,一起来看一下。

问题

项目在开发环境下工作正常,当打包后图片不见了,检查元素后发现路径出错了。

图片路径是这样:background: url(/static/img/bg_camera_tip.bd37151.png),但该路径下文件并不存在。

打包后文件目录如下:

配置打包文件路径出错怎样解决

可以看到背景图片的路径应该是../../static而实际却是/static,找到原因后就好解决了

方法一

查看build目录下webpack.base.conf.js的配置,图片文件会经过url-loader处理。

 module: {  rules: [   ...   {    test: /.(png|jpe?g|gif|svg)(?.*)?$/,    loader: 'url-loader',    options: {     limit: 10000,     name: utils.assetsPath('img/[name].[hash:7].[ext]')    }   },   ...  ] }

登录后复制

它的作用是当文件大小小于limit限制时会返回一个base64串,其实就是把图片资源编码为base64串放在CSS文件里,这样就可以减少一次网络请求,因为每一张图片都是需要从服务端去下载的。但是如果文件太大了就会导致base64串很长,那放在CSS文件里面就会导致文件很大,CSS的文件下载时间变长,就得不偿失了,所以会有一个limit参数,在这个范围内的才会被转成base64串,它的单位是字节。对于这个问题,该loader还提供了一个publicPath参数,目的是修改引用的图片地址,默认是当前路径,那直接改它就可以了,即在options节点下添加一个参数publicPath: ‘../../’。

 module: {  rules: [   ...   {    test: /.(png|jpe?g|gif|svg)(?.*)?$/,    loader: 'url-loader',    options: {     limit: 10000,     publicPath: '../../', //你实际项目的引用地址前缀     name: utils.assetsPath('img/[name].[hash:7].[ext]')    }   },   ...  ] }

登录后复制

方法二

webpack.base.conf.js里还有一条规则,每一个vue文件都会经过vueLoaderConfig处理

 module: {  rules: [   {    test: /.vue$/,    loader: 'vue-loader',    options: vueLoaderConfig   },   ...  ] }

登录后复制

vueLoaderConfig位于build/vue-loader.conf.js,它又调用了build/utils.js的cssLoaders的方法。

  if (options.extract) {   return ExtractTextPlugin.extract({    use: loaders,    fallback: 'vue-style-loader'   })  }

登录后复制

如果是生产环境options.extract值为true,会调用这个ExtractTextPlugin插件做处理,它的作用是抽离项目中引用的样式文件到一个独立的CSS文件中,这样就可以一次加载所有的CSS文件,相当于CSS文件并行加载,可以减少网络请求次数,更多优点及使用可以查看ExtractTextWebpackPlugin。回到这个问题,它还有一个参数就是publicPath,可以覆盖所指定的loader的publicPath配置,那么就跟前面的配置一样,可以给所有的loader统一配置引用文件的路径地址。

另外这里的user:loader实际上是返回一系列的loader的集合,cssLoaders的返回是

 return {  css: generateLoaders(),  postcss: generateLoaders(),  less: generateLoaders('less'),  sass: generateLoaders('sass', { indentedSyntax: true }),  scss: generateLoaders('sass'),  stylus: generateLoaders('stylus'),  styl: generateLoaders('stylus') }

登录后复制

这也就是即便你没有在webpack.base.conf.js中配置sass-loader也能使用SASS语法的原因。

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

vue拦截器兼容性处理

console怎样打印日志信息

以上就是配置打包文件路径出错怎样解决的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2749808.html

(0)
上一篇 2025年3月8日 05:26:21
下一篇 2025年3月8日 05:26:31

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Vue 去除路径中的#号的方法

    大家都知道vue-router有两种模式,hash模式和history模式,带#的则是hash模式。接下来给大家带来了vue 去除路径中的#号的解决方法,感兴趣的朋友一起看看吧 在开发过程中发现路径中带有/#/的标示,而且还去不掉,很丑陋。…

    2025年3月8日
    200
  • react下载文件有哪两种方式

    react下载文件的两种方式分别是: 学习视频分享:react视频教程 1、GET类型下载  download = url => {    const eleLink = document.createElement(‘a’);   …

    2025年3月7日
    200
  • JS如何读取和保存文件?方法介绍

    JavaScript读取和保存文件       因为Google还不提供同步插件数据的功能,所以导入和导出插件配置就必须和文件打交道了。而出于安全原因,只有IE才提供访问文件的API;但随着HTML 5的到来,其他浏览器也纷纷支持了。   …

    2025年3月7日
    200
  • Paper.js入门指南:路径和几何形状

    在之前的教程中,我介绍了 Paper.js 中的安装过程和项目层次结构。这次我将教你有关路径、线段及其操作的知识。这将使您能够使用该库创建复杂的形状。之后,我想介绍 Paper.js 所基于的一些基本几何原理。 使用路径 Paper.js …

    2025年3月7日
    200
  • JavaScript事件冒泡原理解析:探讨事件的冒泡过程和触发顺序

    深入理解JavaScript冒泡事件机制:探究事件的冒泡路径和触发顺序 在前端开发中,我们经常会使用JavaScript来处理各种事件,如点击、滚动、输入等。而这些事件在触发后,会经历一个冒泡的过程,从被触发的元素开始,逐级向上级元素传递,…

    2025年3月7日
    200
  • node怎么读取的文件是什么类型

    node读取文件类型的方法:1、通过“res.writeHead(200, {‘Content-type’: mime.getType(`public/a.webp`)});res.write(chunk);”方式传…

    2025年3月7日
    200
  • 如何在iPhone上访问文件

    您可以将文件存储在iphone上,并通过预装的“文件”应用访问它们。在该应用中,您可以浏览并管理所有文档、文件、图像以及从网络下载的其他内容。 以下帖子将详细解释如何在 iPhone 上查找和访问保存的文件。您将了解如何访问不同的存储位置、…

    2025年3月6日 互联网
    200
  • 修改iTunes备份文件的存储路径

    itunes备份文件修改路径 随着智能手机的普及,我们的手机中存储着大量珍贵的照片、通讯录、短信等重要数据。为了保障数据的安全,大多数人会选择通过iTunes进行手机备份,以防止意外数据丢失或设备损坏。然而,iTunes备份文件存放路径是默…

    互联网 2025年3月6日
    200
  • iPhone备份存储路径是什么

    iphone备份在哪个文件夹里 随着智能手机的普及和人们对数据安全的重视,备份成为使用手机的重要环节之一。对于iPhone用户而言,备份手机数据可以确保数据的安全性,同时也方便了数据迁移和恢复。那么,iPhone备份文件究竟存放在哪个文件夹…

    互联网 2025年3月6日
    200
  • 如何将VCF文件导入到苹果设备

    苹果怎么导入vcf文件 随着手机的普及,越来越多的人开始使用vcf文件来存储和管理联系人的信息。vcf文件具有跨平台方便的特点,可以在不同的手机系统间互相导入和导出联系人信息。苹果手机也支持导入vcf文件,下面将介绍具体的操作步骤。 首先,…

    互联网 2025年3月6日
    200

发表回复

登录后才能评论