JWD*_*Dev 5 javascript url-routing angularjs angularjs-routing
我正在尝试在AngularJS中创建所谓的"SEO友好"URL.
在我的script.js中我有路由:
app.config(['$routeProvider',
function($routeProvider) {
$routeProvider.html5Mode(true);
when('/blog', {
templateUrl: 'blog.html',
controller: 'BlogController'
}).
when('/page/ideas', {
templateUrl: 'ideas.html',
controller: 'IdeasController'
}).
otherwise({
templateUrl: 'home.html'
});
}]);
app.controller("BlogController", function($scope) {
$scope.title = 'Blog';
});
app.controller("IdeasController", function($scope) {
$scope.title = 'Ideas';
});
Run Code Online (Sandbox Code Playgroud)
要从URL中删除#,我将启用html5模式:
$routeProvider.html5Mode(true);
Run Code Online (Sandbox Code Playgroud)
但是,这会导致以下错误:
由于以下原因无法实例化模块exampleApp:TypeError:$ routeProvider.html5Mode不是函数
有没有人有这个问题的解决方案?这意味着内容不会因为它而从视图中显示.
编辑:对于任何想知道的人,工作代码是:
app.config(['$routeProvider', '$locationProvider',
function($routeProvider, $locationProvider) {
$routeProvider.
when('/blog', {
templateUrl: 'blog.html',
controller: 'BlogController'
}).
when('/page/ideas', {
templateUrl: 'ideas.html',
controller: 'IdeasController'
}).
otherwise({
templateUrl: 'home.html'
});
$locationProvider.html5Mode(true);
}]);
Run Code Online (Sandbox Code Playgroud)
html5mode提供$locationProvider者可以使用方法.
您应该包括$locationProvider在你的配置阶段,使在配置块可用的依赖性和再启用html5mode的#免费URL.
码
app.config(['$routeProvider', '$locationProvider',
function($routeProvider, $locationProvider) {
//$routerProvider code here
$locationProvider.html5Mode(true);
}]);
Run Code Online (Sandbox Code Playgroud)
此外,您必须<base href="/"在index.html页面上添加>标记
| 归档时间: |
|
| 查看次数: |
6068 次 |
| 最近记录: |