解决前端项目中动态获取项目路径问题之Location对象

书到用时方恨少,用好对象没烦恼。

今天简单记录一下Location对象使用后的一些笔记。需求:处理项目中静态资源的(绝对路径的获取)

今天在全局处理项目静态资源路径的时候,想把相对路径全部换成绝对路径,这样的话方便后期维护,但是维护一个路径变量后期在开发过程中随着服务的改变还要反复修改这个路径,感觉很麻烦。所以我们可以动态的去获取当前的服务路径。

Location: Location 对象存储在 Window 对象的 Location 属性中,表示那个窗口中当前显示的文档的 Web 地址

Location 对象属性

属性描述
hash设置或返回从井号 (#) 开始的 URL(锚)。
host设置或返回主机名和当前 URL 的端口号。
hostname设置或返回当前 URL 的主机名。
href设置或返回完整的 URL。
pathname设置或返回当前 URL 的路径部分。
port设置或返回当前 URL 的端口号。
protocol设置或返回当前 URL 的协议。
search设置或返回从问号 (?) 开始的 URL(查询部分)。

 

Location 对象方法

属性描述
assign()加载新的文档。
reload()重新加载当前文档。
replace()用新的文档替换当前文档。

 

今天主要了解三个属性:protocol   host  pathname

在控制台输出一下三个属性的输出效果:

var protocol = location.protocol; //获取http或https
var host = window.location.host; //获取IP和端口号
var pathname = window.location.pathname; //设置或返回当前 URL 的路径部分
var context = window.location.pathname.split("/"); //将pathname转换为数组,方便之后处理判断
var basePath = protocol + "//" + host;
console.log("protocol:结果是"+protocol)
console.log("host:结果是"+host)
console.log("pathname:结果是"+pathname)
console.log(context)

结果已经很清晰:所以封装了以下函数:

/**
 * @Date: 2020-07-02 17:49:16
 * @description: 获取文件绝对路径
 * @param {type} 
 */
function getPath(){
    var protocol = location.protocol; //获取http或https
    var host = window.location.host; //获取IP和端口号
    var context = window.location.pathname.split("/"); //获取项目名
    var basePath = protocol + "//" + host;
    // 此处要获取到哪一层 自己进行判断选择
    for(var i =0;i<context.length-1;i++){
        basePath+=context[i]+'/';
        if(context[i]==""){
            break;
        }

    }
    return basePath;
}

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值