2016-12-27 1 views
0

В приложении есть маршрут определяется:Angular2 не загружается, когда непосредственно просмотрены по адресу маршрута или обновления

const routes: Routes = [ 
    { path: '', component: MainComponent }, 
    { path: 'users', component: UsersComponent } 
] 

В index.html база HREF также корректно.

<base href="/"> 

При навигации по приложению маршруты загружаются правильно. Но когда пользователи входят .../users непосредственно через браузер, приложение не загружается и возвращает 404. Также, когда пользователи обновляют веб-страницу (F5), приложение также не загружается.

Есть ли что-то не так с угловым кодом или конфигурацией сервера?

+0

Что вы подразумеваете под навигацией через приложение, маршруты загружаются правильно. ? –

+1

Возможно, вы что-то ищете [например, https://github.com/mgechev/angular-seed/wiki/Deploying-prod-build-to-Apache-2). Какова конфигурация вашего сервера? – adriancarriger

+0

Спасибо, например! – user2276975

ответ

2

Это зависит от настроек вашего сервера. Вам нужно либо настроить редирект index.html для того, когда 404 происходит,

Или создать переписывают так, что каждый запрос по истечении определенного пути всегда приводит к index.html,

Или просто изменить стратегию местоположения на хеш вместо HTML5 (хотя не то, что я бы рекомендовал по нескольким причинам, как сказал Питер).

+2

Правильный ответ - но стратегия хэша не рекомендуется - так как она убирает некоторые возможности с рендерингом на стороне сервера (что важно для поисковых систем и т. Д.) –

+0

@PeterSalomonsen отредактирован, согласован! – Amit