2016-07-27 19 views
4

ngビルドを--prodオプションでコンパイルすると、1つのメインにコンパイルされます。 jsファイルと私はコンソールにエラーを取得します。"ng build --prod"と "ng serve --prod"をAngular 2 CLIで404エラーを取得する方法

しかし、私はブラウザでアプリケーションを実行すると、それでも個々のjsファイルを探します。

私main.ts:

// 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)); 

アプリケーションが

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

探しブラウザで実行する場合のjsファイルは、すべての1に圧縮されているので、これらの要求のすべてがコースの404を取得しますmain.jsファイル。これを避けるにはどうすればいいですか?

+0

は、あなたが正しいmain.jsを確認することができますが提供されていますか? –

+0

@ArpitAgarwal私はそれが信じています – ganjan

答えて

8

製品をビルドすると、パスはアプリケーションのルートではなく、表示しているシステムのルートに変わります。

システムのユーザールートフォルダーからビルドされたプロジェクトの正しいパスを渡してビルドします。

例:

ng build -prod --base-href /tony/myproject/ 
関連する問題