每当我手动将浏览器中的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
以外的任何内容答案 0 :(得分:1)
根据文件:
服务器端 使用此模式需要在服务器端重写URL, 基本上你必须重写所有你的入口点的链接 应用程序(例如index.html)。需要标签也是 对于这种情况很重要,因为它允许Angular区分 url的一部分是应用程序库和路径 应该由申请人处理。
https://docs.angularjs.org/guide/ $位置
因此,您需要服务器端的一些额外支持:配置您的http服务器以index.html
回复您的应用中的所有网址。
答案 1 :(得分:1)
我使用ASP.Net MVC进行服务器端URL重写,使用控制器。可能不是它的预期用途但效果很好