无法手动导航到网址

时间:2014-11-25 22:26:49

标签: angularjs visual-studio-2012

每当我手动将浏览器中的URL输入到使用Angular构建的网站时,我得到:

'HTTP 404
 The resource cannot be found
 Requested URL: /register'

唯一的可导航网址是http://localhost:XXXX/index.html,从那里我必须使用锚标签浏览网站。

我对Angular的配置文件如下所示:

app.config(function ($locationProvider, $routeProvider) {
$locationProvider.html5Mode(true);
//.hashPrefix('!')
$routeProvider
    .when('/', {
        templateUrl: '/Client/AngularViews/home.html'
    })
    .when('/register', {
        templateUrl: '/Client/AngularViews/register.html',
        controller: 'registerController'
    })
    .when('/post-register', {
        templateUrl: '/Client/AngularViews/postRegister.html',
        controller: 'registerController'
    })
    .otherwise({ templateUrl: 'Client/AngularViews/home.html' });
});

的index.html

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" data-ng-app="app">
<head>
    <script type="text/javascript" src="Scripts/jquery-2.1.1.min.js"></script>
    <script type="text/javascript" src="Scripts/bootstrap.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0-rc.3/angular.min.js"></script>
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular-route.js"></script>
    <link href="Content/bootstrap.min.css" rel="stylesheet" />
    <script type="text/javascript" src="Scripts/mainController.js"></script>
    <base href="/" />
</head>
<body>
    <div class="container-fluid">
        <div ng-view></div>
    </div>

有人可以向我解释我做错了什么吗?我希望能够在地址栏中手动输入网址并导航到index.html

以外的任何内容

2 个答案:

答案 0 :(得分:1)

根据文件:

  

服务器端   使用此模式需要在服务器端重写URL,   基本上你必须重写所有你的入口点的链接   应用程序(例如index.html)。需要标签也是   对于这种情况很重要,因为它允许Angular区分   url的一部分是应用程序库和路径   应该由申请人处理。

https://docs.angularjs.org/guide/ $位置

因此,您需要服务器端的一些额外支持:配置您的http服务器以index.html回复您的应用中的所有网址。

答案 1 :(得分:1)

我使用ASP.Net MVC进行服务器端URL重写,使用控制器。可能不是它的预期用途但效果很好