我正在尝试使用universal和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'
在这个讨论之后,我可以看到这是一个新的实现
尝试按照建议导入,但不起作用(命名空间不存在)
- 从“@universal/ng-express-engine”导入 { ngExpressEngine}
按照此拉取请求中的建议使用版本 rc.5 进行了测试。
最后,按照这个链接
https://github.com/angular/universal/tree/master/modules/ng-express-engine
用这个库测试给了我同样的结果:
import { ngExpressEngine } from '@nguniversal/express-engine';
至少项目正在运行,所以我可以继续编码和使用它..但期待有一个完整的服务器端渲染。
谢谢!