好吧所以我使用webpack捆绑/构建了一个常规的角度cli项目prod,然后获取dist文件夹的内容并将它们放入另一个快速安装的项目中。
代码:
var express = require('express');
var app = express();
var path = require('path');
app.get('/', function(req, res) {
res.sendFile(__dirname + '/' + 'index.html')
});
app.listen(3000, function() {
console.log('Example app listening on port 3000!');
});
问题在于,当我运行这个时,我得到一个" loading ..."打开时的页面:// localhost:3000 /并且没有别的。当我检查控制台时,我收到了这些错误
[无法加载资源:服务器响应状态为404(未找到):// localhost:3000 / inline.js
无法加载资源:服务器响应状态为404(未找到):// localhost:3000 / styles.b52d2076048963e7cbfd.bundle.js
无法加载资源:服务器响应状态为404(未找到):// localhost:3000 / main.d27eab344e583f765067.bundle.js
无法加载资源:服务器响应状态为404(未找到):// localhost:3000 / styles.b52d2076048963e7cbfd.bundle.js
无法加载资源:服务器响应状态为404(未找到):// localhost:3000 / main.d27eab344e583f765067.bundle.js]
任何人都可以解决这个问题或找出问题所在?任何帮助是极大的赞赏。我这样做的原因是,一旦应用程序投入生产,我就无法访问" npm"所以我没有任何ang-cli命令,只有节点命令。实现套接字IO也是我们走捷径的另一个原因。如果有其他替代方式,请告诉我。
感谢
答案 0 :(得分:0)
您需要提供其余的静态文件,因为您现在只发送index.html。
将您的角度应用程序放在某个目录中,例如public,并执行以下操作:
app.use(express.static('public'));
app.get('/', function(req, res) {
res.sendFile(__dirname + '/public' + 'index.html')
});
答案 1 :(得分:0)
我发现这个问题的解决方案是将2个组件放在单独的目录中,并以这种方式构建它们(不要忘记每次更改到comp。目录):
ng build --base-href /first/dist
ng build --base-href /second/dist
然后你将两个组件放在两个不同的目录中
快递:
app.use(
'/first',
express.static(
path.join(__dirname,'first', 'dist')
)
);
和
app.use(
'/second',
express.static(
path.join(__dirname,'second', 'dist')
)
);
他们应该是一个更好的解决方案,但我还没有找到它
希望有所帮助
Gregoire - 你可以在www.agenda.tools
找到工作网站