我正在使用 angularjs 在 .net mvc 中开发应用程序。当我不使用 html5 模式时,它工作正常,但是当我将 html5 模式设置为 true 时,服务器调用该地址给我一个他的资源无法找到。
这是我的 app.js
var app = angular.module("myApp", ['ngRoute'])
.config(function ($routeProvider, $locationProvider) {
$routeProvider.when('/test',
{
templateUrl: 'templates/TestPage.html',
controller: 'ProfesionalController'
});
$routeProvider.otherwise({ redirectTo: '/' });
$locationProvider.html5Mode(true);
});
这是我的观点(布局):
<!DOCTYPE html>
@Scripts.Render("~/bundles/modernizr")
<script src="~/Scripts/angular/angular.js"></script>
<script src="~/Scripts/angular/angular-route.js"></script>
<script src="~/app/app.js"></script>
<script src="~/app/home/home.js"></script>
<script src="~/app/profesional/profesional.js"></script>
<base href="/">
<a href="test">Test</a>
@*this is the link*@
</div>
</div>
</div>
<div ng-app="myApp" class="container body-content">
<div ng-view></div>
@RenderBody()
</div>
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required: false)
当我点击测试链接时,服务器尝试定位: http://localhost:39881/test “给我一个 404 Not Found - http://localhost:39881/test”
我错过了什么。它适用于非 html5 模式。
最佳答案
当我尝试在我的应用程序中启用 html5 模式时,我也遇到了同样的问题。后来仔细看了整个代码,才知道我的API调用的名字和我的路由调用的名字是一样的。浏览器变得困惑,而不是调用路由调用,而是调用 api 调用。
尝试更改其中一个名称。它应该可以正常工作。
关于javascript - Angular HTML5 模式路由给资源找不到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31631858/