2016-09-23 34 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