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