2013-06-17 4 views
3

Угловой: 1.1.5AngularJS HTML5 вложенных маршруты

Я хожу в: http://xxxxx.com/route1/route2/route3 и /route3 сработал вместо route1/route2/route3 Работает отлично с режимом HTML5 выкл ... :(

Nginx конфигурация

location/{ 
    index index.html; 
    try_files $uri $uri/ /index.html?$args; 
} 

Мое приложение конфигурации

$routeProvider.when('/route1/route2/route3', { 
     templateUrl: '/views/home.html', 
     controller: 'HomeCtrl' 
    }); 

$routeProvider.when('/route3', { 
     templateUrl: '/views/home.html', 
     controller: 'HomeCtrl' 
    }); 

$locationProvider.hashPrefix('!'); 
$locationProvider.html5Mode(true); 

$location Вход:

$$protocol: "http", $$host: "xxxxxx"…} 
$$absUrl: "http://xxxxxxx.com/route1/route2/route3" 
$$hash: "" 
$$host: "10.44.11.73" 
$$path: "/route3" 
$$port: 80 
$$protocol: "http" 
$$replace: false 
$$url: "/route3" 

Как я могу изменить мои настройки, чтобы сделать HTML5 URLs работать с вложенными маршрутами?

ответ

3

Для отдельных приложений страниц, это все, что вам нужно в Nginx конфигурации:

server 
{ 
    server_name example.com *.example.com; 
    access_log /var/log/nginx/example.com.access.log; 
    error_log /var/log/nginx/example.com.error.log; 
    root /var/www/html/example; 
    index index.html; 
    location/{ 
     try_files $uri /index.html; 
    } 
} 
+0

Это не решает проблему ... '$$ absUrl: "HTTP: //www.locahost/route1/route2/route3"' ' $$ путь: "/ route3"' '$$ URL-адрес : "/ route3" ' Путь должен быть'/route1/route2/route3' –

+0

Это работает для меня, Thx! –

+0

Работает как очарование! Спасибо человеку –

3

Добавить

<base href="/"> 

к вашему index.html.

+0

Это может помочь, но я не уверен, почему. Что это будет связано с html5? –

Смежные вопросы