2013-11-04 24 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链接,确保你得到他所做的所有更改。

相关问题