簡體   English   中英

Sails.js如何為Yeoman生成的應用程序提供服務

[英]How can Sails.js serve a Yeoman generated app

我是Sails.js的新手,我對它非常興奮。 它是創建API的絕佳工具。 我也在Yeoman工作了一段時間生成單頁應用程序(jquery或angular),它們非常適合客戶端邏輯。

但是,目前基於這兩種技術制作應用程序的唯一方法是將它們分成兩個完全獨立的項目,這是浪費的。

我正在尋找一種將兩者結合起來的方法。 我想讓Sails.js服務於Web應用程序的靜態資產並加載其index.html文件(而不是homepage.ejs)。 我也想要開發環境(grunt,live-reload可以正常工作)。

我已經嘗試在assets文件夾中創建一個yeoman項目並將布局重定向到index.html但它有幾個問題: - 我無法在app /文件夾(開發期間)和dist /文件夾(生產中)之間分開 - bower_components鏈接被破壞(它指的是/ bower_components而不是/ assets / app / bower_components)

我想可能還有更多我尚未發現的問題。

有沒有人嘗試(並成功)結合這些技術?

您可以通過執行以下步驟來提供靜態index.html而不是homepage.ejs:

  1. 將index.html文件放在assets文件夾下。
  2. 在config文件夾中打開routes.js並更改代碼
'/': {
       view: 'homepage'
    }

'/': {
       view: false
    }

assets文件夾用作網站中的根文件夾。 如果“angular.min.js”文件位於“assets \\ bower_components \\ angular”文件夾中,則會在瀏覽器中將其轉換為“/bower_components/angular/angular.min.js”。

可能不是你正在尋找的,但是我前面看過一個似乎做類似事情的項目; 結合前端(jquery / angular)+后端(sails)。

http://sanestack.com/

主要區別在於sanestack使用余燼作為前端(可能不適合你)。 但關於它的好處是生成器同時在前端+后端項目上創建適當的資源。

至少,希望它會給你一些如何將風帆與前端項目相結合的想法。

本回答所述,您可以輕松使用Sails為靜態站點提供服務。

但是我還想推薦一種替代方法 - 因為你的應用程序前端與你的前端干凈地分離,你可以利用這種解耦來使用不同的策略分別擴展你的后端和前端。

所以現在,假設您在單個實例上部署應用程序,您可以使用可以非常有效地提供靜態資產的Nginx,並將其用作API的反向代理

最終,當您需要擴展應用程序並希望將應用程序部署到實例集群(讓我們在AWS上說)時,您可以將靜態資產推送到S3存儲桶並在EC2實例上部署API。 每次必須在前端進行一些視覺更改時,您都不必重新部署API。 您可以從CDN(如AWS雲端)服務整個前端,該CDN從單個S3存儲桶中獲取資產。 為您的API提供服務的實例將完全免除服務靜態資產的開銷。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM