Angular Маршрутизация - Прямой доступ к пути не работает с URL - PullRequest
0 голосов
/ 26 января 2020

Я создал и хост www.xinthose.com. Это исходный код сайта . Когда вы переходите на веб-сайт, он приведет вас к пути /home, но при попытке скопировать эту вкладку или go непосредственно на www.xinthose.com/home я получаю ошибку 404 от HostGater ( хост моего сайта). Это содержимое app-routing.module.ts:

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

import { HomeComponent }   from './home/home.component';
import { BibleComponent }   from './bible/bible.component';
import { AboutComponent } from './about/about.component';
import { PageNotFoundComponent } from './page-not-found/page-not-found.component';

const routes: Routes = [
  { path: '', redirectTo: '/home', pathMatch: 'full' },
  { path: 'home', component: HomeComponent },
  { path: 'bible', component: BibleComponent },
  { path: 'about', component: AboutComponent },
  { path: '**', component: PageNotFoundComponent },
];
@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule { }

Почему это происходит и как я могу это исправить? Это вообще связано с pathMatch? Мне не хватает свойства маршрута ?

1 Ответ

1 голос
/ 26 января 2020

Это не из-за ролей маршрутизации веб-приложения.

Angular приложения должны быть установлены и доступны, поэтому маршрутизатор angular можно использовать, поэтому при попытке доступа к маршруту как этот «домен / дом», вы получите ошибку 404.

Есть три решения, которые я знаю прямо сейчас

1-й «лучший»

Angular universal

2nd

Если ваш хост похож на apache, который использует php файлы, попробуйте переписать маршруты, подобные этому

search rewrite URL-адреса для любых других типов хост-серверов

  • .htaccess
RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
    RewriteRule ^(.*)$ https://app.domain.com/$1 [L,R=301]

3-й

Использование PWA

это потрясающе, но все же приложение должно быть установлено на пользовательском устройстве, но после первого запуска прямые маршруты будут работать

...