Угловой маршрутизатор получить 404 ошибка?

1

Моя проблема в том, что каждый раз, когда я загружаю свою ссылку. Пример: " https://www.example.com/" он будет перенаправлен на " https://www.example.com/design-brief", так как я настроил его в своем routing.ts. Но когда я воспользуюсь ссылкой " https://www.example.com/design-brief" и введите в свою адресную строку, она покажет ошибку в журнале консоли. "GET https://www.example.com/design-brief 404()"

const APP_ROUTES: Routes = [
{ path: 'design-brief', component: DesignBriefComponent },
{ path: 'design-evaluation', component: DesignEvaluationComponent },
{ path: '', redirectTo: '/design-brief', pathMatch: 'full' },
{ path: "**",redirectTo:"/design-brief" } ];

Вот мой код в моей routing.ts

Теги:
angular

3 ответа

2
Лучший ответ

См. мой ответ здесь для более подробного объяснения того, почему это происходит.

В двух словах у вас есть 2 варианта:

  • Настройте свой веб-сервер, чтобы он всегда отвечал index.html всякий раз, когда он обнаруживает 404 - таким образом, Angular всегда будет нагрузки и его службы маршрутизации будут обрабатывать навигацию по клиентская сторона.

  • Измените местоположение приложенияStrategy на стратегию размещения Hash, как описанный здесь здесь. Тем не менее, это изменит ваши URL-адреса приложений, и это не так желательно, по моему мнению.

  • 0
    Это решило мою проблему. Благодарю. Кстати, есть ли способ удалить "#"? Я имею в виду, есть ли способ исправить это, не используя хэш?
  • 0
    Чистый способ - использовать стратегию расположения по умолчанию (а не хеш) и выполнить некоторую настройку на веб-сервере, как я уже упоминал. Если вы используете HashLocationStrategy, то # остается, чтобы остаться :)
Показать ещё 6 комментариев
0

Я решил это, используя стратегию размещения Hash. Добавьте следующий код в часть импорта @ngModule и префикс всей своей гиперссылки С# и также ссылайтесь на offecial ссылка для информации

RouterModule.forRoot(
   appRoutes,{ useHash: true }
)
0

Вам не нужен пустой путь и путь **, только путь ** с pathMatch 'full':

const APP_ROUTES: Routes = [
{ path: 'design-brief', component: DesignBriefComponent },
{ path: 'design-evaluation', component: DesignEvaluationComponent },
{ path: "**",redirectTo:"design-brief",pathMatch: 'full' } ];

и перенаправление не нуждается в косой черте (/) перед конструкцией-кратким

  • 0
    Но если я удалю его, страница не будет перенаправлена на страницу «design -rief». Я использую angular-cli-ghpages. И когда я использовал ссылку « example.com/design-brief », она все еще показывает «GET example.com/design-brief 404 ()» в моем журнале консоли

Ещё вопросы

Сообщество Overcoder
Наверх
Меню