У меня есть приложение angular 7, где я использую маршрутизацию следующим образом:
const routes: Routes = [
{path: '', component: HomePageComponent},
{path: 'privacy', component: PrivacyPageComponent},
{
path: '',
redirectTo: '',
pathMatch: 'full'
},
{path: '**', component: PageNotFoundComponent}
];'
В localhost все работает нормально. Если я наберу в адресной строке браузера:
- localhost: 4000 / -> Я захожу на домашнюю страницу
- localhost: 4000 / конфиденциальность -> Я захожу на страницу конфиденциальности
Проблема заключается в том, что я внедряю его в производство (Apache). Я уже отредактировал свой .htaccess, как это предлагается в Angular Docs, вот так.
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
RewriteRule ^ - [L]
#If the requested resource doesn't exist, use index.html
RewriteRule ^ /index.html
Но в этом случае (конечно) Если я наберу в браузере:
- localhost: 4000 / -> Я иду на домашнюю страницу
- localhost: 4000 / конфиденциальность -> я снова захожу на домашнюю страницу
Маршрутизация в основном работает, только если я захожу на домашнюю страницу и щелкаю ссылку с routerLink = "/ privacy". Если пользователь вводит полный URL-адрес непосредственно в адресную строку браузера, я не могу зайти на страницу.
Что я могу сделать, чтобы Angular обслуживал все определенные страницы?
Спасибо!