Я сделал следующее:
Приложение AngularJS
В приложении.js:
$locationProvider.html5Mode(true);
В index.html:
<base href="/">
Конфигурация nginx
location / {
try_files $uri /index.html;
}
После развертывания все работает нормально (знак # удален) со статическими страницами. Я могу перейти непосредственно к http://fakeurl/about
или http://fakeurl/download
страницам; если я обновляю браузер, страницы все еще загружаются.
Однако, когда я перехожу непосредственно на динамическую страницу:
http://fakeurl/cars/:car_id
Тогда nginx будет обслуживать 404.
Если я использую путь #, то он перенаправляет на путь без знака # и отображает страницу; но когда я снова обновляю страницу, она показывает 404. (Это происходит только с динамическими маршрутами)
http://fakeurl/#/cars/:car_id
http://fakeurl/#/shops/:shop_id
Какие правила перезаписи мне нужно написать в блоках nginx для обслуживания моих динамических маршрутов? Спасибо!