我在index.html文件中定义了一个angular应用程序。使用angular-routing,我将路由一个名为/erez的链接,以加载带有模板的视图。它在应用程序内部工作-当我从index.html的导航栏点击/erez的链接时,它工作得很好。但是当我直接在地址栏上访问my.site.com/erez时,它给出了404。我理解为什么没有服务器端代码,但是有没有一种纯角度的方法来实现直接urls呢?我的路由代码:
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);
});发布于 2015-11-10 05:58:46
你可以在this link上找到很多有用的信息
因此,要么您需要在标记中包含这个基本url标记:
<base href="/" />但请注意,此基本标记可能会破坏代码中的相对链接。或者,您可以使用:
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});希望这能有所帮助。
发布于 2015-11-10 06:32:47
试试这个,现在应该可以用了。
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 });
});https://stackoverflow.com/questions/33618421
复制相似问题