我试图启动通过角度CLI生成的Angular应用程序,但似乎默认的app-root
组件无法加载。需要说的是,我使用代理连接角度应用和快速服务器之间的连接,并且我同时运行两个脚本:node bin/www
用于express / node.js start和{{ 1}}用于启动Angular并创建代理连接,它看起来像这样(package.json的一部分):
ng serve --proxy-config proxy.config.json
索引页面加载正常,但似乎"scripts": {
"start": "concurrently --kill-others \"node bin/www\" \"ng serve --proxy-config proxy.config.json\""
}
组件(默认组件,从角度CLI app-root
创建)没有加载:
这是我的node.js / express ng new
和一条路线:
use
我错过了什么?为什么默认的var express = require('express');
var router = express.Router();
var app = express();
var path = require('path');
app.use(express.static('./src/client/'));
app.use(express.static('./'));
app.use(express.static('./tmp'));
app.use('/*', express.static(path.resolve('src/client/index.html')));
router.get('*', function(req, res) {
res.sendFile(path.resolve('src/client/index.html'));
});
module.exports = router;
组件无法加载? (需要说的是,当我运行app-root
时,它会根据需要启动角度主页并且组件正常,所以我认为问题出在快递中。)
提前致谢
答案 0 :(得分:5)
您应该提供dist/
文件夹after calling ng build --prod
(the --prod
is important, as the default is --dev)的内容。所以,它会是这样的:
"scripts": {
"start": "ng build --prod && node bin/www"
}
并且,或多或少地适应您的快递脚本:
app.use(express.static('./dist'));
app.use('/*', express.static(path.resolve('dist/index.html')));
router.get('*', function(req, res) {
res.sendFile(path.resolve('dist/index.html'));
});