为什么Angular 2不加载默认的应用程序根组件?

我试图通过angularCLI生成Angular应用程序,但它似乎像默认的app-root组件不加载。 需要说的是,我正在使用angular应用程序和快递服务器之间的连接代理,并且我正在同时运行两个脚本: node bin/www express / node.js启动和ng serve --proxy-config proxy.config.json用于启动Angular并创build代理连接的ng serve --proxy-config proxy.config.json ,它看起来像这样(package.json的一部分):

 "scripts": { "start": "concurrently --kill-others \"node bin/www\" \"ng serve --proxy-config proxy.config.json\"" } 

索引页面加载正常,但似乎app-root组件(默认组件,它是从angularCLI ng new创build的)不加载: 在这里输入图像描述 这里是我的node.js / express use s和一个路由:

 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组件不加载? (需要说的是,当我运行ng serve ,它会根据需要启动angular主页,并且组件是可以的,所以我认为这个问题是在某个特定的地方)。

提前致谢

你应该在调用ng build --prod之后提供 dist/文件夹的内容ng build --prod (– --prod是重要的,因为默认是–dev) 。 所以,这将是这样的:

 "scripts": { "start": "ng build --prod && node bin/www" } 

而且,或多或less地适应你的expression脚本:

 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')); });