2013-11-04 59 views
0

我使用的是grunt-contrib-connect,因爲它附帶Yeoman's angular generatorgrunt-contrib-connect在與node.js相同的端口上

我也有一個node.js快速應用與玉視圖,其中我想引用.js,.css,.html但它似乎像grunt-contrib連接和快速不能共享相同的端口。

在我玉觀點:

link(rel='stylesheet', href='styles/main.css') 

在我grunt.js:

connect: { 
    options: { 
    port: 9000, 
    hostname: 'localhost' 
    }, 
    livereload: { 
    options: { 
     middleware: function (connect) { 
     return [ 
      lrSnippet, 
      mountFolder(connect, '.tmp'), 
      mountFolder(connect, yeomanConfig.app) 
     ]; 
     } 
    } 
    }, 

在我app.js:

app.set('port', process.env.PORT || 3000); 

如果我這個端口更改爲9000我只能得到由grunt-contrib-connect提供的靜態文件,並且沒有快速應用程序的資源。

你可以讓grunt-contrib-connect和node.js在同一個端口上很好地一起玩嗎?

+2

沒有過程可以在相同的端口作爲另一個進程聽。 – gustavohenke

+0

好吧,好知道:)新的想法,這聽起來可能:一些類型的代理哪些路由到不同的端口取決於如果你去'/'或'/ static'? – Cotten

+0

查看已發佈的答案,我希望它有幫助。 – gustavohenke

回答

1

你可以開始通過bouncy包的代理:

var bouncy = require('bouncy'); 

var server = bouncy(function (req, res, bounce) { 
    if (req.headers.host === 'cdn.example.com') { 
     bounce(gruntConnectPort); 
    } else if (req.headers.host === 'example.com') { 
     bounce(expressPort); 
    } else { 
     res.statusCode = 404; 
     res.end('no such host'); 
    } 
}); 
server.listen(anotherPort); 

隨意去適應它,它是否適合你。

+1

我沒有真正嘗試有彈性,但嘗試httpProxy而不是工作正常。 – Cotten

1

我不完全相信你在做什麼的最終目標是,但我想,你真的只是一個擁有web應用程序,搭載約曼,在你想使用類似快速渲染玉意見。如果是這樣的話,我還是看看David Moro's guide用於更新與約曼的角度發電機使用Express的一個服務器中創建的項目。

我使用這個時,我想從靜態頁面更新我的網站,也可能使用服務器端模板的東西。使用此設置,您將不再在開發期間使用Connect,而是使用Express來處理所有事情。確保檢查他的GitHub鏈接,確保你得到他所做的所有更改。

相關問題