終究還是要回到原始的版本 —— 馬丁路德.東
(一)構建(也就是轉譯)
解決spa不能舒心的問題在跟模塊更改配置providers
@NgModule({
declarations: [
AppComponent,
NavbarComponent,
FooterComponent,
SearchComponent,
CarouselComponent,
ProductComponent,
StarsComponent,
ProductDetailComponent,
HomeComponent,
FilterPipe
],
imports: [
BrowserModule,
FormsModule,
HttpModule,
RouterModule.forRoot(routeConfig),
ReactiveFormsModule
],
providers: [ProductService,WebSocketService,
{provide: LocationStrategy,useClass:HashLocationStrategy}],
bootstrap: [AppComponent]
})
然后你npm上
ng build
(二)部署
在服務器上新建clicent文件夾
將打包好的文件放進去就行了
然后更改服務器路由配置
import * as path from 'path';
app.use('/', express.static(path.join(__dirname, '..', 'clicent')));
沒那么簡單,如果想要在本地預覽脐彩,
一個是改變index.html。的(這是我編輯器的路徑)
<base href="http://localhost:63342/aution1/dist/">
還要把所有的http請求改為絕對路徑
放服務器的時候把base刪了。
(三)多環(huán)境
1.在angular-cli中引入不同的配置而已。
在文件的根目錄,有一個angular-cli的配置文件
其中
"environments": {
"source": "environments/environment.ts",
"dev": "environments/environment.ts",
"prod": "environments/environment.prod.ts"
}
這是他的多環(huán)境配置文件。其中第一個source是通用配置,加新的環(huán)境就是在對象里面再加一個對象和相對應的文件就行畸裳。(保證每一個文件里都有相同的配置參數(shù))
如
export const environment = {
production: false
};
2.在代碼中引用環(huán)境變量比如main.ts中是否調(diào)用生產(chǎn)模式
if (environment.production) {
enableProdMode();
}
3.我們可以再package.json中的更改屬性 start
為prod(看自己用哪個環(huán)境)
"start": "ng serve --env=prod --proxy-config proxy.conf.json",
我們在控制器里面直接用environment.什么什么的就能去到自己的環(huán)境變量了。
注意在打包的時候淳地,也要加上自己的配置參數(shù)
ng build --env=prod