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

摘要:
资源相对引用路径问题描述一般情况下,通过webpack+vuecli默认打包的css、js等资源,路径都是绝对的。但当部署到带有文件夹的项目中,这种绝对路径就会出现问题,因为把配置的static文件夹当成了根路径,那么要解决这种问题,就得引用相对路径。解决办法打开webpack.prod.conf.js找到output:增加publicPath:'./',即可,如图。当然在config文件夹下的index.js中修改assetsPublicPath:'./'同样也可以达到资源的相对引用。

资源相对引用路径

问题描述

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

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

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

解决办法

打开webpack.prod.conf.js

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

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

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

当然在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代码,如图所示:

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

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

免责声明:文章转载自《webpack打包vue项目,资源路径如何从绝对路径改为相对路径?css中的图片资源如何修改配置?》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇流式实时分布式计算的设计Unity3d LineRenderer画线下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

vue中的父子组件之间的通信--新增、修改弹框

在一个vue页面中有时候内容会很多,为了方便编写查看,可以分为多个子组件,最后在父组件中引入对应的子组件即可。 下面这个是父子组件通信中的一个具体实例:新增、修改弹框。子组件中主要写了关于新增、修改的弹框, 子组件: 1.弹框: <div class="newDocuments"> <div class="newDocuments_...

Css3动画(一) 如何画3D旋转效果或者卫星围绕旋转效果

如何画3D旋转效果或者卫星围绕旋转效果,当然这个也是工作中的一个任务,我在网上翻了一下,并没有找到类似的东西,所以写下来还是费了一番功夫,因此我把它拿出来记录一下,当然替换了一部分内容。好了,话不多说,进入正题。 我们都知道,浏览器是一个平面的视觉效果,如何在一个平面上看出立体的3D效果呢,其实就是一个视觉差的问题。那我们就从一个平面视觉效果一步一步画出...

vscode中使用beautify插件格式化vue文件

1.点击文件->首选项->设置,找到beautify.language并在html一栏里加上vue "beautify.language": { "js": { "type": [ "javascript", "json"...

2/3 初次搭建 Vue 项目遇到的问题汇总

  今天步子扯开的有点大   初步看了一下 Vue-router 然后就开始用脚手架 Vue-cli 来搭建第一个项目了   遇到的问题确实很多,还有一些疑问,自己查资料都大致解决了一部分   ( 推荐还是理解了一部分的有缘人 进行阅读理解 如果有错 请大家指正 )   按照流水账来说一下 首先是 Vue-router    这里先简单谈一下,我的理解  ...

在css使用自定义字体

在css文件中通过@font-face自定义字体,src 为字体文件的相对路径。 @font-face { font-family: "LED";//为字体取名字 src: url("fonts/HD_UnidreamLED.ttf") format('truetype');//字体文件 } //在样式中使用该字体 .led { font-size:50...

vue中我改变了data中的一个值,但现在视图上没有实时更新,请问我怎么拿到更新后的值?

Vue在数据初始化的时候会对data,computed,watcher中的属性进行依赖收集,如果支持proxy,则直接使用proxy进行拦截,好处是可以深层次的进行拦截,如果不支持proxy,则使用object.defineProperty来进行数据拦截依赖收集。但是object.defineProperty无法做到深层次的监听,所以对属性进行递归算法去...