使用 locationProvider 时,刷新浏览器网页不会在 ui-router 中加载

Posted

技术标签:

【中文标题】使用 locationProvider 时,刷新浏览器网页不会在 ui-router 中加载【英文标题】:Refreshing browser web-page not load in ui-router when locationProvider used 【发布时间】:2017-08-22 23:18:20 【问题描述】:

当我使用 F5 直接刷新浏览器或直接点击 url 时, 页面未加载,但当我单击按钮时,页面会加载

我是这样用的

使用 $locationProvider 启用 html5Mode

var routerApp = angular.module('myApp', ['ui.router','ngCookies']);
routerApp.config(function($locationProvider)
    $locationProvider.html5Mode(
          enabled: true
    )
);

我在您的 HTML 文件中添加了以下代码:

<base href="/">

或者简单地使用这样的语法

$locationProvider.html5Mode(
          enabled: true,
          requireBase: false
    )

我发现 https://github.com/angular-ui/ui-router/issues/105 上已经有这个问题了

有人知道如何解决这个问题吗? 当我不使用 $locationProvider 来省略 '#' 时,刷新也可以正常工作

【问题讨论】:

有什么理由需要省略#?为什么不保留前缀? 根据要求,url中需要省略# 【参考方案1】:

试试这个

$locationProvider.html5Mode(
    enabled: true,
    requireBase: false
)

【讨论】:

也试过了,但没用,现在我也写了问题【参考方案2】:

试试

$locationProvider.html5Mode(
    enabled: true,
    requireBase: false
)

【讨论】:

也试过了,但没用,现在我也写了问题

以上是关于使用 locationProvider 时,刷新浏览器网页不会在 ui-router 中加载的主要内容,如果未能解决你的问题,请参考以下文章

可以禁用 $locationProvider 和 $routeProvider 吗?

Android Locationprovider 需要很长时间才能暂时不可用

Angularjs : $locationProvider.hashPrefix("!") ;

如何添加安装我自己的 LocationProvider?

如何在 Android 上提供自己的 LocationProvider?

如何阻止网页自行刷新(至少部分内容)?