私はユニバーサルとangular4を使用しようとしています..すべてが機能し、ハッシュルートを介して直接アクセスすることもできます..しかし、問題はリクエストが常に表示されることです<body><demo-app></demo-app></body>
内部にいくつかのhtmlタグと情報があると思います<demo-app></demo-app>
これが私がそれをどのように実装したかです:
@NgModule({
bootstrap: [AppComponent],
imports: [
BrowserModule.withServerTransition({
appId: 'my-app-id'
}),
ServerModule,
ServerTransferStateModule,
AppModule
]
})
export class ServerAppModule {
constructor(private transferState: TransferState,
private translateService: TranslateService){
translateService.use('en');
}
// Gotcha
ngOnBootstrap = () => {
this.transferState.inject();
}
}
app.engine('html', ngExpressEngine({
bootstrap: ServerAppModule
}));
app.set('view engine', 'html');
app.set('views', 'src');
app.get("*", (req, res) => {
console.time(`GET: ${req.originalUrl}`);
res.render('../dist/index', {
req: req,
res: res
});
console.timeEnd(`GET: ${req.originalUrl}`);
});
私のバージョンは "@angular/common": "^4.0.0" です
https://github.com/angular/universal/blob/master/modules/ng-express-engine/src/main.tsおよび_import { ngExpressEngine } from '@nglibs/universal-express-engine'
この議論に続いて、それがそのための新しい実装であることがわかりました
提案どおりにインポートしようとしましたが、機能しません (名前空間が存在しません)
- import { ngExpressEngine } from '@universal/ng-express-engine'
このプル リクエストで提案されているように、バージョン rc.5 でテストされています。
最後に、このリンクをたどります
https://github.com/angular/universal/tree/master/modules/ng-express-engine
このライブラリでテストすると、同じ結果が得られます。
import { ngExpressEngine } from '@nguniversal/express-engine';
少なくともプロジェクトは実行されているので、コーディングと使用を続けることができます..しかし、完全なサーバー側のレンダリングを楽しみにしています.
ありがとう!