我的index.html文件中定义了一个角度应用程序。使用角度路由,我正在路由一个名为/erez加载带有模板的视图的链接。/erez它在应用程序内部工作 - 当我单击导航栏上的链接时,index.html它工作得很好。但是当我在地址栏上直接访问 my.site.com/erez 时,它会给出404. 我明白为什么没有服务器端代码,但是有没有一种纯粹的角度方式来实现直接网址?我的路由代码:
var app = angular.module('labApp', ['ngRoute', 'angular.filter']);
app.config(function ($routeProvider, $locationProvider) {
$routeProvider.
when('/', {
templateUrl: 'index.html',
controller: 'mainCtrl'
}).
when('/erez', {
templateUrl: 'erez2.html',
controller: 'erezCtrl'
}).
otherwise({
redirectTo: '/'
});
$locationProvider.html5Mode(true);
});
Run Code Online (Sandbox Code Playgroud)
您可以从此链接找到许多有用的信息:
因此,您需要在标签内添加此基本 url 标签:
<base href="/" />
Run Code Online (Sandbox Code Playgroud)
但请注意,此基本标记可能会破坏代码中的相关链接。或者您可以使用:
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。