gan*_*jan 5 javascript production-environment angular-cli angular
当我尝试使用--prod选项运行ng build时,它会编译成一个main.js文件,并且我在控制台中没有错误.
但是当我在浏览器中运行应用程序时,它仍然会查找单个js文件.
我的主要内容:
// 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));
Run Code Online (Sandbox Code Playgroud)
当应用程序在浏览器中运行时,它会查找
app/_services/messages.service.js
app/_services/user.service.js
app/app.routes.js
etc...
Run Code Online (Sandbox Code Playgroud)
当然,所有这些请求都得到404,因为js文件都被压缩为一个main.js文件.我该如何避免这种情况?
小智 10
构建产品时,路径将更改为您正在查看的系统的根目录,而不是应用程序的根目录.
通过将正确的路径从系统的用户根文件夹传递到构建项目所在的位置来构建它.
例:
ng build -prod --base-href /tony/myproject/
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23480 次 |
| 最近记录: |