错误可能是在使用Angular服务器端渲染时,文件路径不正确而导致的。可以检查是否存在这样的错误:服务器找不到所需的文件而一直等待。这通常是因为使用了相对路径或绝对路径,路径所指向的文件不存在或路径不正确等导致。
下面是一些可能有用的
示例:
同步的服务器端代码
// load angular
import * as angularCore from '@angular/core';
import { enableProdMode } from '@angular/core';
import { renderModuleFactory } from '@angular/platform-server';
// load express
import * as express from 'express';
// load angular app
import { AppModuleNgFactory } from '../dist/public/app/app.module.ngfactory';
const PORT = 3000;
enableProdMode();
const app = express();
app.get('*.*', express.static('./public', {maxAge: '1y'}));
app.get('/*', function(req, res) {
// see https://github.com/angular/universal-starter/issues/366
// or: https://imapex.io/blog/using-angular-universal-for-seo-friendly-apps-part-2-server-side-rendering/
res.setHeader('Content-Type', 'text/html');
res.setHeader('Cache-Control', 'no-cache');
res.setHeader('Transfer-Encoding', 'chunked');
// Our Universal express-engine
renderModuleFactory(AppModuleNgFactory, {
// Our index.html
document: ' ',
url: '/',
extraProviders: []
}).then(html => {
res.status(200);
res.send(html);
res.end();
});
});
app.listen(PORT, () => {
console.log('listening on http://localhost:' + PORT + '!');
});