为了账号安全,请及时绑定邮箱和手机立即绑定

没有 urlRouterProvider 的 ui 路由。否则

没有 urlRouterProvider 的 ui 路由。否则

Go
回首忆惘然 2021-11-29 15:41:06
如果我不包含 $urlRouterProvider.otherwise('/'); 则不会发生路由。在配置中。我的 go 应用引擎设置与 gorilla 是r := mux.NewRouter()r.HandleFunc(/admin, handleAdmin)和 angularjs 配置是;angular.module('admin')    .config(function($stateProvider, $urlRouterProvider) {      $stateProvider.state('home', {        url: '/',        templateUrl: '/admin/index.html',        controller: 'AdminController as admin'      });  //$urlRouterProvider.otherwise('/');})当我不调用 $urlRouterProvider.othwerwise 行,并打开http://localhost:8080/admin我希望看到 admin/index.html,但我没有。只有当我手动导航到http://localhost:8080/admin#/时,我才能看到它。但是如果我添加 $urlRouterProvider.othwerwise 选项并转到http://localhost:8080/admin它会自动重定向到http://localhost:8080/admin#/ 我不认为这是通常的方法,因为我可能希望“否则”路由到自定义 404 页面。我错过了什么?
查看完整描述

2 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

默认情况下,Angular 会在url前面添加hashPrefix。因此,当您导航到 时http://localhost:8080/admin,您不会看到 index.html,因为您尚未访问 angular 的 ui-router 中定义的 url。您必须导航到http://localhost:8080/admin/#/实际处于/应用程序状态。


这与您的应用程序在没有 的情况下无法运行的原因相同.otherwise(),因为之后它会自动将您重定向到该/状态。


对于可能的修复:


在你的.config函数中:


// This is in your app module config.

$locationProvider.html5Mode(true);

而在你的index.html:


// This is in your index.html head.

<base href="/" />


查看完整回答
反对 回复 2021-11-29
?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

问题不在于没有声明otherwise.

问题出在你的路线上。您将 url 指定为'/',这意味着只能通过http://localhost:8080/admin/而不是通过http://localhost:8080/admin访问状态主页

它的otherwise作用是什么。当您访问 url http://localhost:8080/admin 时,路由器会尝试找到与该 url 匹配的状态,但没有找到。因此它重定向到与您的家乡状态匹配的http://localhost:8080/admin/


查看完整回答
反对 回复 2021-11-29
  • 2 回答
  • 0 关注
  • 180 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信