解决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 相关文章推荐
jquery入门必备的基本认识及实例(整理)
Jun 24 Javascript
关于页面嵌入swf覆盖div层的问题的解决方法
Feb 11 Javascript
jQuery动画特效实例教程
Aug 29 Javascript
node.js中的fs.renameSync方法使用说明
Dec 16 Javascript
JavaScript 面向对象与原型
Apr 10 Javascript
javascript模拟评分控件实现方法
May 13 Javascript
高性能JavaScript DOM编程(1)
Aug 11 Javascript
JS使用正则截取两个字符串之间的字符串实现方法详解
Jan 06 Javascript
react中的ajax封装实例详解
Oct 17 Javascript
vue中如何实现pdf文件预览的方法
Jul 12 Javascript
nuxt框架中对vuex进行模块化设置的实现方法
Sep 06 Javascript
Vue基于iview实现登录密码的显示与隐藏功能
Mar 06 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
如何对PHP程序中的常见漏洞进行攻击(下)
2006/10/09 PHP
在字符串中把网址改成超级链接
2006/10/09 PHP
PHPMailer使用教程(PHPMailer发送邮件实例分析)
2012/12/06 PHP
php中socket的用法详解
2014/10/24 PHP
Symfony核心类概述
2016/03/17 PHP
orm获取关联表里的属性值
2016/04/17 PHP
Yii视图CGridView列表用法实例分析
2016/07/12 PHP
Laravel学习教程之model validation的使用示例
2017/10/23 PHP
PHP单例模式模拟Java Bean实现方法示例
2018/12/07 PHP
php写入txt乱码的解决方法
2019/09/17 PHP
如何在PHP环境中使用ProtoBuf数据格式
2020/06/19 PHP
Nigma vs Alliance BO5 第二场2.14
2021/03/10 DOTA
js类型检查实现代码
2010/10/29 Javascript
给html超链接设置事件不使用href来完成跳
2014/04/20 Javascript
javascript中$(function() {});写与不写有哪些区别
2015/08/10 Javascript
深入理解jquery中的事件与动画
2016/05/24 Javascript
BootStrap中Tab页签切换实例代码
2016/05/30 Javascript
原生js实现轮播图的示例代码
2017/02/20 Javascript
详解如何实现一个简单的 vuex
2018/02/10 Javascript
微信小程序实现tab左右切换效果
2020/11/15 Javascript
Vue中 axios delete请求参数操作
2020/08/25 Javascript
Python中多线程thread与threading的实现方法
2014/08/18 Python
Python复制目录结构脚本代码分享
2015/03/06 Python
pycharm远程调试openstack代码
2017/11/21 Python
Pycharm 设置自定义背景颜色的图文教程
2018/05/23 Python
对Python中实现两个数的值交换的集中方法详解
2019/01/11 Python
Python 多线程,threading模块,创建子线程的两种方式示例
2019/09/29 Python
python opencv 实现对图像边缘扩充
2020/01/19 Python
keras模型可视化,层可视化及kernel可视化实例
2020/01/24 Python
如何使用Python进行PDF图片识别OCR
2021/01/22 Python
英国著名药妆店:Superdrug
2021/02/13 全球购物
人力资源主管职责范本
2014/03/05 职场文书
初中生期末评语大全
2014/04/24 职场文书
幼师求职自荐信
2014/05/31 职场文书
县级领导干部开展党的群众路线教育实践活动工作汇报
2014/10/25 职场文书
2016中秋晚会开幕词
2016/03/03 职场文书