我是什么让本地化的网址如下:
http://example.com/的主机 / somepath
http://example.com/的 GER / somepath
假设我们总是了解用户信息。
angular.module('website', [])
.constant('ROUTES', (function () {
var lang = 'eng'; // just for example
return {
SOME_PATH: '/' + lang + '/somepath'
}
})())
.config([..., '$locationProvider', 'ROUTES', function(..., $locationProvider, ROUTES {
$routeProvider.when(ROUTES.SOME_PATH, {templateUrl: 'pages/some_page.html', controller: 'SomePageController'});
$locationProvider.html5Mode(true);
}])
.run(['$rootScope', 'ROUTES', function ($rootScope, ROUTES) {
$rootScope.ROUTES = ROUTES;
}]);
所以,如果我在html中添加链接,那就是工作:
<a href="{{ROUTES.SOME_PATH}}">Some path</a>
按照计划点击链接路由工作后。 但是,如果我刷新页面或直接链接(“http://example.com/eng/somepath”),我无法访问任何页面并看到404页面。
答案 0 :(得分:2)
使用$ routeProvider映射路由会不会更容易?
$routeProvider.when('/:langId/:somepath',
{
controller: 'languageHandlingController'
})
答案 1 :(得分:0)
我认为最好的选择是将网址设置为http://mysite.com/somepath?lang=en
,然后您可以直接从网址上阅读lang
,只要您需要。