【问题标题】:Loosing hash (#) in Angular URL using ui-router使用 ui-router 在 Angular URL 中丢失哈希 (#)
【发布时间】:2017-05-22 06:20:09
【问题描述】:

可以通过我的网络服务器的根地址访问我的单页 angularjs 应用程序。 localhost:8080/ 例如,当我选择进入主状态时,应用程序应该将浏览器地址字段中的 url 更改为 localhost:8080/#/home,其中第一部分 (localhost:8080/) 指向我的角度应用程序,第二部分 (#/home)指向家乡网址。

但是,我的 Angular 应用程序没有做它应该做的事情,而是将浏览器地址字段中的 url 更改为 localhost:8080/home,这在重新加载时显然会创建一个 404。

你们谁能告诉我我做错了什么,或者至少给我一个提示看看哪里?

【问题讨论】:

  • 你确定你没有使用Html5Mode吗?另外,什么版本的Angular?路由在 Angular 1.6 中发生了一些重大变化...
  • 实际上,这在 ui-router 的常见问题解答中有详细介绍:github.com/angular-ui/ui-router/wiki/…

标签: javascript angularjs url angular-ui-router


【解决方案1】:

从配置中禁用 html5 模式。在配置中添加/更改以下行

$locationProvider.html5Mode(false);

这会将# 添加到您的网址。

【讨论】:

    【解决方案2】:

    您只需要说您不使用带有$locationProvider 的HTML 5 模式。在您的config 文件中:

    myApp.config(['$locationProvider', function($locationProvider) {
      $locationProvider.html5Mode(false);
    }]);
    

    JSFiddle demo

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 2018-06-04
      • 2011-04-22
      • 2017-03-31
      • 1970-01-01
      • 2016-06-13
      • 1970-01-01
      相关资源
      最近更新 更多