webpack打包vue项目,资源路径如何从绝对路径改为相对路径?css中的图片资源如何修改配置?...

资源相对引用路径

问题描述

一般情况下,通过webpack+vuecli默认打包的css、js等资源,路径都是绝对的。

但当部署到带有文件夹的项目中,这种绝对路径就会出现问题,因为把配置的static文件夹当成了根路径,那么要解决这种问题,就得引用相对路径。

解决办法

打开webpack.prod.conf.js

找到output增加 publicPath: './', 即可,如图。

那么这样后,资源的引用路径就正确了。

当然在config文件夹下的index.js中修改 assetsPublicPath: './'同样也可以达到资源的相对引用。

背景图片的引用问题

上面虽然解决了资源路径的引用问题,但是资源里面的背景图片,不像index.html中加载资源一样,通过./static/js/app.js引用可以正常加载,图片资源是通过css加载的,如 background: url("../../assets/images/logo-index.png") no-repeat;被相对打包后变成了url(static/img/logo-index.2f00bf2.png) no-repeat所以我们要保留css引用图片的正常路径,即:

url(../../static/img/logo-index.2f00bf2.png) no-repeat

那么就需要修改build文件夹下的utils.js代码,如图所示:

添加如图所示的一行代码,这样不论是字体还是图片的引用问题都能解决。

转载于:https://www.cnblogs.com/LChenglong/p/10309501.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当使用webpack5时,可能会出现在.css文件图片路径无法找到的问题。这是因为在webpack5,引入图片的方式发生了变化。 在之前的版本,我们可以直接在.css文件使用相对路径来引入图片。但是在webpack5,除非使用绝对路径,否则默认情况下无法正确解析路径。 解决这个问题的方法有两种: 1. 使用绝对路径:在.css文件使用绝对路径来引入图片,可以确保路径的正确解析。例如,如果图片位于项目根目录下的img文件夹,可以这样引入:background-image: url(/img/example.jpg); 2. 配置webpack的文件解析规则:在webpack配置文件,可以通过配置resolve.alias来解决路径问题。例如,如果图片位于项目根目录下的img文件夹,可以这样配置resolve.alias: ```javascript module.exports = { //... resolve: { alias: { '@img': path.resolve(__dirname, 'img') } } }; ``` 然后在.css文件使用别名来引入图片:background-image: url('@img/example.jpg'); 无论使用哪种方法,都需要确保图片路径的正确性。此外,还需要注意webpack5使用的是asset模块,需要在配置文件正确设置相关的loader,以便正确处理图片文件。 总之,针对webpack5.css样式图片路径找不到的问题,可以通过使用绝对路径配置resolve.alias来解决。同时,确保正确配置相关的文件解析规则和loader,以便正确处理图片文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值