2016-09-23 35 views
0

好了,所以我捆绑/建立了一个使用webpack prod的常规角度cli项目,然后把dist文件夹的内容放到另一个安装了express的项目中。
代码:
Bundeled角2应用程序与快递

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

的问题是,当我运行此我就当得到一个“载入中...”页面://本地主机:3000 /,别无其他。当我检查控制台,我得到这些错误

[无法加载资源://本地主机:3000/inline.js
无法加载资源:服务器的服务器404(未找到)的状态回应状态为404(Not Found):// localhost:3000/styles.b52d2076048963e7cbfd.bundle.js
加载资源失败:服务器响应状态为404(Not Found):// localhost:3000/main.d27eab344e583f765067.bundle.js
未能加载资源:服务器用的404(未找到)状态回答://本地主机:3000/styles.b52d2076048963e7cbfd.bundle.js
未能加载资源:服务器响应状态为404(Not Found):// localhost:3000/main.d27eab344e583f765067.bundle.js]

任何人都可以解决这个问题或找出问题所在?任何帮助是极大的赞赏。我这样做的原因是,一旦应用程序投入使用,我无法访问“npm”,所以我没有任何ang-cli命令,只有节点命令。另外实现套接字IO是我们走快速路线的另一个原因。如果有任何其他方式,请让我知道。

谢谢

回答

0

您需要为剩余的静态文件提供服务,因为您现在只需发送index.html。

把你的角应用在某些目录中,例如公共和做到这一点:

app.use(express.static('public')); 
app.get('/', function(req, res) { 
    res.sendFile(__dirname + '/public' + 'index.html') 
}); 
0

我发现这个问题的解决方案是将2种组分在单独的目录,并建立他们这样(唐“T之前忘记改变你的补偿目录,每次):

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

他们应该有更好的解决办法,但我还没有找到它尚未

希望它可以帮助

格雷瓜尔 - 你可以找到工作现场它在www.agenda.tools