2014-01-13 81 views
1

我有一個已經深入開發的項目,並且端口有問題。關於網絡應用端口的困惑

客戶是SPA寫在骨幹網,使用Sails作爲服務器。

問題是在客戶端在快速運行的端口80上的事實,而帆是在1337年

我想在帆內舉辦這個骨幹應用程序,而不是ouside帆運行。 更多細節: 當我開啓提琴手時,我看到對localhost:1337/get/user的請求。 我需要它也駐留在端口80。

Backbone是使用標準編寫的。我有所有常用文件夾(JS,LIBS,CSS)的app.js和main.js。換句話說,我有index.html數據主要使用require.js ...

我沒有問題在單獨的node.js中運行客戶端...如何在Sails.js中運行它?

我在哪裏放我的index.html ???

+0

我已經看到該鏈接。我有index.html反過來有數據主要的調用要求和Backbone的魔法是在那裏被解僱......經過大量的閱讀,似乎我可以在資產文件夾下的sails中的東西? –

回答

2

試圖服務index.html作爲靜態文件不起作用。相反,嘗試以下操作:

端上桌您index.html從帆

就成爲index.html作爲views/layout.ejsviews/home/index.ejs組合,其安裝到根/爲默認的新建項目揚帆。

2.建立一個包羅萬象的路線

config/routes.js把這樣的事情:

module.exports.routes = { 
    '/': { 
    view: 'home/index' 
    }, 

    '/:unknownRoute': { 
    view: 'home/index' 
    } 
} 

這樣你就可以,例如,使用簡單的單級pushstate路由在你的SPA中:路線如/products/news仍然會給你你的index.html(如果你使用更復雜的東西,你可能想用Sails路線多玩一點)。

3.用前綴即成您的API

在你config/controllers.js放,例如:

module.exports.controllers = { 
    ... 

    prefix: '/api', 

    ... 
} 

這將讓你爲你的API有一個前綴和既有/api/products(JSON API )和/products(您的SPA)路線。

4.使用任何端口,你想

您可以通過config/local.js改變默認端口,甚至80(如果你沒有,當然什麼都在80運行)。例如,在生產中,將默認的Sails或任何其他端口代理到Nginx可能是一個更好的主意。

+0

所以這意味着,我可以在那裏爲我的index.html服務,它應該工作?我會在第二天早上第一次嘗試。我會在這裏發佈結果。 –

+0

如果你真的想通過Sails應用程序來提供它,是的,它會工作。另一種(比較乾淨的)方式可能是,例如,將'index.html'和資產作爲靜態文件在http:// www.whatever.com /'上用Apache或Nginx提供,在http:// api上用Sails API提供.whatever.com /'。儘管他們都有優點和缺點。 – bredikhin

+0

目前我正在使用端口80在單獨的Express上爲Backbone服務,並且Sails在默認端口1337上提供服務......是否有問題? –