我在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);
});
答案 0 :(得分:2)
您可以从this link找到许多有用的信息:
因此,您需要在标记内部使用此基本网址标记:
<base href="/" />
但请注意,此基本标记可能会破坏代码中的相对链接。或者,您可以使用:
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
希望这有帮助。
答案 1 :(得分:1)
试试这个,现在应该可以了。
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({ enabled: true, requireBase: false });
});