Проблема с маршрутом при развертывании angular 6 на aws ec2 ubuntu 16.04 - PullRequest
0 голосов
/ 06 января 2019

Я создал приложение среднего стека и загрузил его на сервер AWS Ec2 с помощью Ubuntu 16.04. Теперь, когда я захожу на мою ссылку 'http://xx.xxx.xx.xx:4200', она работает нормально и открывает' http://xx.xxx.xx.xx:4200/login'. Но когда я пытаюсь перезагрузить или набрать 'http://xx.xxx.xx.xx:4200/userhome' или' http://xx.xxx.xx.xx:4200/login', тогда это выдает ошибку 404 Кроме того, выход не работает после входа в систему. Весь проект работает нормально, когда я использую 'ng serve' Я прочитал это: https://angular.io/guide/deployment. Я создал файл '.htaccess' в своей папке, но проблема все та же.

Я прочитал много решений по StackOverflow, но ни одно из них мне не подходит. Я думаю, что я пропускаю или не делаю некоторые шаги правильно. Я не могу установить этот .htaccess.

См. Ниже код файла .htaccess

RewriteEngine On
    # If an existing asset or directory is requested go to it as it is
    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

Я добавил следующий код в apache.conf

<Directory "/var/www/html">
  Options Indexes FollowSymLinks
  AllowOverride All
  Require all granted
</Directory>

См. App-routing.module.ts

import { NgModule } from '@angular/core';
import {Routes, RouterModule} from '@angular/router';
import { LoginComponent } from './login/login.component';
import { RegisterComponent } from './register/register.component';
import { UserhomeComponent } from './userhome/userhome.component';
import { DriverComponent } from './driver/driver.component';

const routes:Routes = [
  {path:'',redirectTo:'login',pathMatch:'full'},
  {path:'login',component:LoginComponent},
  {path:'register',component:RegisterComponent},
  {path:'userhome',component:UserhomeComponent},
  {path:'driver',component:DriverComponent}
];

@NgModule({
  imports:[RouterModule.forRoot(routes)],
  exports:[RouterModule]
})
export class AppRoutingModule { }

Я использую http: //xx.xxx.xx.xx: 4200 / в качестве URL Проект размещен в 'var / www / html'

ПОЖАЛУЙСТА, ПОМОГИТЕ МНЕ В ЭТОМ ОТНОШЕНИИ! Спасибо

1 Ответ

0 голосов
/ 06 января 2019

вам нужно настроить, что все, что не является ни файлом, ни каталогом, будет перенаправлено в основной файл index.html ... и тогда угловой маршрут сделает все остальное

если вы используете apache, добавьте файл .htaccess и эти строки,

если вы используете nginx, вам нужно войти через SSH на сервер и обновить nginx conig

в пути: / etc / ngins / sites-enabled / {THE_CONFIG_FILE}

не забудьте перезапустить службу nginx

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.html [L,R]
...