解决vue单页面应用打包后相对路径、绝对路径相关问题


Posted in Javascript onAugust 14, 2020

在项目开发过程中,在部署过程中,用到了反向代理,这就要求前端代码中不能使用绝对路径。但是我们知道,一般情况下,通过webpack+vuecli默认打包后的HTML、css、js等文件,使用的都是绝对路径。下面可以举几个例子来看一下:

1、打包后的index.html文件

解决vue单页面应用打包后相对路径、绝对路径相关问题

2、打包后的css文件

解决vue单页面应用打包后相对路径、绝对路径相关问题

所以,如果在项目中需要使用相对路径来获取静态的资源文件,需要怎么做呢?

1、修改webpack配置文件中的assetsPublicPath,修改为如下图所示。

解决vue单页面应用打包后相对路径、绝对路径相关问题

修改配置后,进行打包发现,打包后的index.html文件中,对css等文件的调用,变成相对路径。

解决vue单页面应用打包后相对路径、绝对路径相关问题

但是同时我们也会的发现这样修改后,导致打包后的css文件中,图片的路径出现问题,如下所示,图片路径出错导致图片找不到。

解决vue单页面应用打包后相对路径、绝对路径相关问题

所以仍需进一步修改配置,使其变成如下路径:

.iradio_flat-yellow{background-image:url(../../static/img/yellow@2x.04850a2.png);

2、 处理图片路径问题

在webpack对ExtractTextPlugin插件配置的地方,加入如下代码(具体值可能有变化,依据自身项目打包后文件路径关系确定)

解决vue单页面应用打包后相对路径、绝对路径相关问题

再次打包,发现问题解决!

补充知识:Vue-cli 2打包静态文件夹static打包路径报错,开发中使用绝对路径,打包后部署到二级目录,绝对路径没用改变。

在开发中,如果使用绝对路径在运行测试环境是没用任何问题的

但是在打包后,路径是回安装原来写的路径完全不改变的搬过去。

那么在部署在二级目录下,读取根目录肯定会报错

解决办法:在开发中使用相对路径

主要文件

config->index.js

build->assetsPublicPath: '/二级目录/'

最后的斜线很重要不能省略

static静态文件

build->utils.js
exports.cssLoaders下的function generateLoaders
 if (options.extract) {
   return ExtractTextPlugin.extract({

里面添加publicPath: '/二级目录/'中间写二级路径地址,后面的也是斜线很重要,不能省略

以上这篇解决vue单页面应用打包后相对路径、绝对路径相关问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript Base64编码和解码,实现URL参数传递。
Sep 18 Javascript
Javascript 函数中的参数使用分析
Mar 27 Javascript
3分钟写出来的Jquery版checkbox全选反选功能
Oct 23 Javascript
php,js,css字符串截取的办法集锦
Sep 26 Javascript
jquery中trigger()无法触发hover事件的解决方法
May 07 Javascript
mui上拉加载功能实例详解
Apr 13 Javascript
javascript简单链式调用案例分析
May 10 Javascript
JavaScrpt中如何使用 cookie 设置查看与删除功能
Jul 09 Javascript
浅谈vuex 闲置状态重置方案
Jan 04 Javascript
ES6 proxy和reflect的使用方法与应用实例分析
Feb 15 Javascript
解决node终端下运行js文件不支持ES6语法
Apr 04 Javascript
JS数组的常用10种方法详解
May 08 Javascript
vue调用本地摄像头实现拍照功能
Aug 14 #Javascript
解决vue axios跨域 Request Method: OPTIONS问题(预检请求)
Aug 14 #Javascript
解决在Vue中使用axios POST请求变成OPTIONS的问题
Aug 14 #Javascript
Vue的Options用法说明
Aug 14 #Javascript
Vue 构造选项 - 进阶使用说明
Aug 14 #Javascript
vue 扩展现有组件的操作
Aug 14 #Javascript
如何HttpServletRequest文件对象并储存
Aug 14 #Javascript
You might like
粗略计算在线时间,bug:ip相同
2006/12/09 PHP
php中判断文件空目录是否有读写权限的函数代码
2012/08/07 PHP
Zend Framework生成验证码并实现验证码验证功能(附demo源码下载)
2016/03/22 PHP
PHP经典算法集锦【经典收藏】
2016/09/14 PHP
PHP实现的链式队列结构示例
2017/09/15 PHP
详解laravel安装使用Passport(Api认证)
2018/07/27 PHP
php 多个变量指向同一个引用($b = &$a)用法分析
2019/11/13 PHP
JavaScript在IE和FF下的兼容性问题
2014/05/19 Javascript
iframe里的页面禁止右键事件的方法
2014/06/10 Javascript
javascript实现rgb颜色转换成16进制格式
2015/07/10 Javascript
JavaScript如何自定义trim方法
2015/07/28 Javascript
js数组常见操作及数组与字符串相互转化实例详解
2015/11/10 Javascript
JavaScript无缝滚动效果的实例代码
2017/03/27 Javascript
jQuery 添加样式属性的优先级别方法(推荐)
2017/06/08 jQuery
nodejs简单访问及操作mysql数据库的方法示例
2018/03/15 NodeJs
vue中子组件调用兄弟组件方法
2018/07/06 Javascript
微信小程序实现二维码签到考勤系统
2020/01/16 Javascript
ES6 class类链式继承,实例化及react super(props)原理详解
2020/02/15 Javascript
[01:07:22]2014 DOTA2华西杯精英邀请赛 5 24 DK VS VG加赛
2014/05/26 DOTA
[01:05:29]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第二场 1月24日
2021/03/11 DOTA
Python日期时间模块datetime详解与Python 日期时间的比较,计算实例代码
2018/09/14 Python
python学生信息管理系统(完整版)
2020/04/05 Python
在python中使用requests 模拟浏览器发送请求数据的方法
2018/12/26 Python
Python调用graphviz绘制结构化图形网络示例
2019/11/22 Python
利用Python脚本实现自动刷网课
2020/02/03 Python
Django 实现图片上传和下载功能
2020/12/31 Python
让ie浏览器成为支持html5的浏览器的解决方法(使用html5shiv)
2014/04/08 HTML / CSS
遮罩层 + Iframe实现界面自动显示的示例代码
2020/04/26 HTML / CSS
印度第一网上礼品店:IGP.com
2020/02/06 全球购物
函授毕业自我鉴定
2014/02/04 职场文书
社区交通安全实施方案
2014/03/22 职场文书
伦敦奥运会口号
2014/06/13 职场文书
中国梦演讲稿开场白
2014/08/28 职场文书
同意迁入证明模板
2014/10/26 职场文书
爱国主题班会教案
2015/08/14 职场文书
电频谱管理的原则是什么
2022/02/18 无线电