2017-12-17 17 views
0

, 각도 5 응용 프로그램에서 다른 페이지를 탐색 할 수 없습니다 내 응용 프로그램의 등록 된 경로로 이동하십시오. 내가 통해 구축 과정 후 내 응용 프로그램을 제공하려는 경우 :는 배포 프로젝트 후 (NG 빌드)

ng build 또는 ng build --prod

내가 어떤 경로로 이동 한 후, 404 오류를 받고 있어요. official tutorial을 읽는다면 프로젝트 배포와 관련된 복잡한 작업이 없어야합니다.

빌드 명령에 --base-href=/ 옵션을 추가하는 제안을 찾았지만 성공하지 못했습니다. 나에게 https://www.npmjs.com/package/http-server

가능한 질문 :

나는 다음 HTTP 서버를 사용하고

Q1 : 당신이 각 응용 프로그램을 제공하려면 어떻게?

A1

: 응용 프로그램 디렉토리에서 NPM-패키지의 http-server --cors 명령을 사용하여 --base-href 있도록 올바르게 참조하고

Q2 : 라우팅 구성 (소스 코드) 란 무엇입니까?

A2 : 나는 각도 V5 자습서를 배우고, 그래서 특별한 뭔가를 기대하지 않기 때문에 내 경로가 매우 간단하고, 소스 코드는 다음과 같습니다 제공

import { NgModule }    from '@angular/core'; 
import { RouterModule, Routes } from '@angular/router'; 
import { SalesComponent }  from './sales/sales.component'; 
import { ConsumersComponent } from './consumers/consumers.component'; 

const routes: Routes = [ 
    { path: 'consumers' , component: ConsumersComponent }, 
    { path: 'sales', component: SalesComponent } 
]; 

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

export class AppRoutingModule { } 

AppRoutingModuleapp.modude.ts 파일 (imports: in @NgModule).

Q3 : 각도 앱은 백엔드 (서버 측 앱)에 의존합니까?

A3 : 그렇지 않습니다. 그것은 모의 데이터를위한 모의 객체만을 가지고 있습니다. 이들은 분리 된 클래스에서 정적 데이터로 정의됩니다. 공식 웹 사이트의 Angular 튜토리얼과는 거리가 멀었습니다. 내가 좋아하는 초소형 HTTP 서버로 ng build --prod 버전을 제공하고 싶었다.

그래야 ng serve 명령을 사용할 때 다른 페이지로 이동할 수 있지만 프로젝트를 빌드 한 후에는 동일한 작업을 수행 할 수 없습니다. 자습서는 설명을 제공하며, 빌드 파일을 정적 HTTP 서버로 제공 할 수는 있지만 성공하지는 못합니다.

문제를 어떻게 해결할 수 있습니까? official deployment guide 인해

감사

나는 내 문제를 해결 한

답변

0

.

전면 컨트롤러 패턴을 따르도록 HTTP 서버를 구성해야합니다. 다음 구성을 사용하여 nginx 서버에서 테스트했습니다.

server { 
    listen 80 default_server; 
    root /var/www/html; 
    index index.html index.htm; 
    server_name localhost; 
    location/{ 
     try_files $uri $uri/ /index.html;   
    } 
} 

그리고 이제는 모두 잘 작동합니다.

.htaccess 파일을 사용하거나 Apache 서버를 사용하는 경우 또는 web.config 파일을 사용하는 경우 (IIS가 HTTP 서버 인 경우 등) 동일하게 수행 할 수 있습니다.