解决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 相关文章推荐
小议Function.apply() 之一------(函数的劫持与对象的复制)
Nov 30 Javascript
JavaScript 对话框和状态栏使用说明
Oct 25 Javascript
JavaScript 选中文字并响应获取的实现代码
Aug 28 Javascript
Javascript算符的优先级介绍
Mar 20 Javascript
JS画5角星方法介绍
Sep 17 Javascript
解决Jquery鼠标经过不停滑动的问题
Mar 03 Javascript
javascript实现可全选、反选及删除表格的方法
May 15 Javascript
JQuery.validate在ie8下不支持的快速解决方法
May 18 Javascript
jQuery设置聚焦并使光标位置在文字最后的实现方法
Aug 02 Javascript
Bootstrap 过渡效果Transition 模态框(Modal)
Mar 17 Javascript
jquery获取select选中值的文本,并赋值给另一个输入框的方法
Aug 21 jQuery
vue实现水波涟漪效果的点击反馈指令
May 31 Vue.js
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
深入了解php4(1)--回到未来
2006/10/09 PHP
删除无限分类并同时删除它下面的所有子分类的方法
2010/08/08 PHP
在PHP上显示JFreechart画的统计图方法
2013/11/03 PHP
JS 动态加载脚本的4种方法
2009/05/05 Javascript
Javascript 面向对象 命名空间
2010/05/13 Javascript
jquery复选框checkbox实现删除前判断
2014/04/20 Javascript
JS遍历数组和对象的区别及递归遍历对象、数组、属性的方法详解
2016/06/14 Javascript
JS实现的打字机效果完整实例
2016/06/20 Javascript
jQuery表单插件ajaxForm实例详解
2017/01/17 Javascript
canvas绘制的直线动画
2017/01/23 Javascript
jQuery Chosen通用初始化
2017/03/07 Javascript
Vuex之理解Store的用法
2017/04/19 Javascript
javascript实现二叉树的代码
2017/06/08 Javascript
JavaScript的console命令使用实例
2019/12/03 Javascript
Vue3 实现双盒子定位Overlay的示例
2020/12/22 Vue.js
[28:05]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第一场 10月30日
2020/10/31 DOTA
开始着手第一个Django项目
2015/07/15 Python
python遍历序列enumerate函数浅析
2017/10/17 Python
python安装模块如何通过setup.py安装(超简单)
2018/05/05 Python
Selenium 模拟浏览器动态加载页面的实现方法
2018/05/16 Python
解决安装pycharm后不能执行python脚本的问题
2019/01/19 Python
Python判断对象是否相等及eq函数的讲解
2019/02/25 Python
python实现杨氏矩阵查找
2019/03/02 Python
Python3 把一个列表按指定数目分成多个列表的方式
2019/12/25 Python
详解Python模块化编程与装饰器
2021/01/16 Python
影视动画专业个人的自我评价
2013/12/31 职场文书
大学生学习自我评价
2014/01/13 职场文书
运动会广播稿200字
2014/01/15 职场文书
员工薪酬福利制度
2014/01/17 职场文书
计算机相关专业自荐信
2014/07/02 职场文书
税务职业生涯规划书范文
2014/09/16 职场文书
一份没有按时交货失信于客户的检讨书
2014/09/19 职场文书
2014年学生资助工作总结
2014/12/18 职场文书
2015质检员个人年终工作总结
2015/10/23 职场文书
MySQL kill不掉线程的原因
2021/05/07 MySQL
mysql优化之query_cache_limit参数说明
2021/07/01 MySQL