运行Angular 7 Universal应用程序后出现错误
无法在视图目录“ / root / client / dist / dist / browser”中查找视图“索引”
问题似乎出在客户端站点上。
我已经安装了软件包并再次构建应用程序,该应用程序正在运行,但是如果启动浏览器,则会收到错误消息。
错误:无法在Function.render(/ root / client /的视图目录“ / root / client / dist / dist / browser”中查找视图“ index” dist / server.js:49345:17)在ServerResponse.render(/ root / client / dist / server.js:58250:7)位于/根/客户端/ dist / server.js: 138:9 at Layer.handle [as handle_request](/ root / client / dist / server.js:51131:5)在下一个(/ root / client / dist / server.js:50879: 13)在Route.dispatch(/ root / client / dist / server.js:50854:3)在 Layer.handle [as handle_request](/ root / client / dist / server.js: 51131:5)位于/根/客户端/ dist / server.js:50354:22位于 参数(/ root / client / dist / server.js:50427:14)在 param(/ root / client / dist / server.js:50438:14)
// These are important and needed before anything else
import 'zone.js/dist/zone-node';
import 'reflect-metadata';
import {
enableProdMode
} from '@angular/core';
import * as express from 'express';
import {
join
} from 'path';
// Faster server renders w/ Prod mode (dev mode never needed)
enableProdMode();
// Express server
const app = express();
declare var window;
const PORT = process.env.PORT || 4200;
const DIST_FOLDER = join(process.cwd(), 'dist');
// * NOTE :: leave this as require() since this file is built Dynamically from webpack
const {
AppServerModuleNgFactory,
LAZY_MODULE_MAP
} = require('./dist/server/main');
// Express Engine
import {
ngExpressEngine
} from '@nguniversal/express-engine';
// Import module map for lazy loading
import {
provideModuleMap
} from '@nguniversal/module-map-ngfactory-loader';
app.engine('html', ngExpressEngine({
bootstrap: AppServerModuleNgFactory,
providers: [
provideModuleMap(LAZY_MODULE_MAP)
]
}));
app.set('view engine', 'html');
app.set('views', join(DIST_FOLDER, 'browser'));
// TODO: implement data requests securely
app.get('/api/*', (req, res) => {
res.status(404).send('data requests are not supported');
});
// Server static files from /browser
app.get('*.*', express.static(join(DIST_FOLDER, 'browser')));
// All regular routes use the Universal engine
app.get('*', (req, res) => {
res.render('index', {
req
});
});
// Start up the Node server
app.listen(PORT, () => {
console.log(`Node server listening on http://localhost:${PORT}`);
});
解决方案 Here