angualrjs Error: $location:nobase $location in HTML5 mode requires a <base> tag to be present!

在将AngularJS从1.1.5版本升级到1.8.0时,可能会遇到$location:nobaseerror错误。该错误源于从1.3.0版本开始,启用html5Mode时需要配置baseURL。解决方法包括在<head>标签中设置<base href='/'/>或者在$locationProvider中设置requireBase为false。确保正确设置baseURL以避免此错误。
摘要由CSDN通过智能技术生成

为什么会遇到$location:nobase error

angularjs1.1.5v升级到1.8.0v的时候会抛出这个问题。问题的详情请参考: Error:location:nobase

问题分析

如果在ngApp.config()中使用了$locationProvider.html5Mode(true),那么angularjs 1.3.0v 之后的版本需要设置一个base URL。没有设置他的话就会抛出上面的error了。

解决方案

  1. 如果你的base URL是’/’(e.g. https://myapp.com/),有两种处理方法:
    第一种: 在head tag 中设置base url为’/’
    <head>
    	<base href='/'>
    	...
    </head>
    
    $locationProvider.html5Mode(true)
    
    第二种:在html5Mode中设置requireBase 为 false
    $locationProvider.html5Mode({
      enabled: true,
      requireBase: false
    });
    
  2. 如果你的base URL 是’/subapp/’(e.g. https://myapp.com/subapp/)
    <head>
    	<base href='/subapp/'>
    	...
    </head>
    
    $locationProvider.html5Mode(true)
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值