2016-07-27 12 views
4

을 실행하려고 할 때 --prod 옵션을 사용하여을 빌드하면 하나의 기본으로 컴파일됩니다. js 파일과 콘솔에서 오류가 발생합니다."ng build --prod"와 "ng serve --prod"를 Angular 2 CLI와 함께 사용하여 404 오류를 얻는 방법

그러나 브라우저에서 응용 프로그램을 실행할 때 여전히 개별 js 파일을 찾습니다.

내 main.ts : 응용 프로그램이

app/_services/messages.service.js 
app/_services/user.service.js 
app/app.routes.js 
etc... 

을 찾습니다 브라우저에서 실행하면 이러한 요청은 모두가 JS 파일 이후 과정 (404)를 얻을 수

// default 
import { provide, enableProdMode, ExceptionHandler } from '@angular/core'; 
import { LocationStrategy, HashLocationStrategy } from '@angular/common'; 
import { bootstrap } from '@angular/platform-browser-dynamic'; 
import { HTTP_PROVIDERS, Http } from '@angular/http'; 

// External 
import { 
    TranslateService, TranslateLoader, TranslateStaticLoader 
} from 'ng2-translate/ng2-translate'; 
import {Angulartics2} from 'angulartics2'; 

// mine 
import { CustomExceptionHandler } from './app/_common/CustomExceptionHandler'; 
import { UserService } from './app/_services/user.service'; 
import { MessagesService } from './app/_services/messages.service'; 
import { APP_ROUTER_PROVIDERS } from './app/app.routes'; 
import { App, environment } from './app/'; 

if (environment.production) { 
    enableProdMode(); 
} 

bootstrap(App, [ 
    APP_ROUTER_PROVIDERS, 
    HTTP_PROVIDERS, 
    provide(ExceptionHandler, { useClass: CustomExceptionHandler }), 
    provide(LocationStrategy, { useClass: HashLocationStrategy }), 
    { 
    provide: TranslateLoader, 
    useFactory: (http: Http) => new TranslateStaticLoader(http, '/assets/i18n', '.json'), 
    deps: [Http] 
    }, 
    Angulartics2, 
    TranslateService, 
    MessagesService, 
    UserService 
]) 
.then(() => { 
    console.log('Angular 2 loaded'); 
}) 
.catch(err => console.error(err)); 

모든 일에 압축 main.js 파일. 어떻게 이것을 피할 수 있습니까?

+0

당신이 올바른 main.js을 확인 할 수가 제공되고있다? –

+0

@ArpitAgarwal 나는 그것이라고 믿는다. – ganjan

답변

8

제품을 빌드하면 경로가 앱의 루트가 아닌보고있는 시스템의 루트로 변경됩니다.

시스템의 사용자 루트 폴더에서 빌드 된 프로젝트가있는 위치로 올바른 경로를 전달하여 빌드하십시오.

예 :

ng build -prod --base-href /tony/myproject/