Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Sails.js如何为Yeoman生成的应用程序提供服务_Javascript_Sails.js_Yeoman_Single Page Application - Fatal编程技术网

Javascript Sails.js如何为Yeoman生成的应用程序提供服务

Javascript Sails.js如何为Yeoman生成的应用程序提供服务,javascript,sails.js,yeoman,single-page-application,Javascript,Sails.js,Yeoman,Single Page Application,我对Sails.js是新手,对此我非常兴奋。它是创建API的一个很好的工具。 我还在使用Yeoman生成的单页应用程序(jquery或angular)工作一段时间,它们非常适合客户端逻辑 然而,目前基于这两种技术制作应用程序的唯一方法是将它们分成两个完全独立的项目,这是浪费 我正在寻找一种将两者结合起来的方法。 我想让Sails.js为web应用程序的静态资产服务,并加载其index.html文件(而不是homepage.ejs)。我还希望开发环境(grunt、livereload)能够正常工作

我对Sails.js是新手,对此我非常兴奋。它是创建API的一个很好的工具。 我还在使用Yeoman生成的单页应用程序(jquery或angular)工作一段时间,它们非常适合客户端逻辑

然而,目前基于这两种技术制作应用程序的唯一方法是将它们分成两个完全独立的项目,这是浪费

我正在寻找一种将两者结合起来的方法。 我想让Sails.js为web应用程序的静态资产服务,并加载其index.html文件(而不是homepage.ejs)。我还希望开发环境(grunt、livereload)能够正常工作

我曾尝试在assets文件夹中创建一个yeoman项目,并将布局重定向到index.html,但它有几个问题: -我无法将应用程序/文件夹(在开发过程中)与dist/文件夹(在生产过程中)分开 -bower\u components链接已断开(它指的是/bower\u components,而不是/assets/app/bower\u components)

我想可能还有更多的问题我还没有发现


有人尝试过(并成功地)结合这些技术吗?

可能不是你想要的,但我不久前看过一个项目,它似乎做了类似的事情;组合前端(jquery/angular)+后端(sails)

主要区别在于sanestack使用ember作为前端(可能不适合您)。但是,它的好处是生成器可以同时在前端和后端项目上创建适当的资源


至少,希望它能让您了解如何将sails与前端项目结合起来。

您可以通过以下步骤提供static index.html而不是homepage.ejs:

  • 将index.html文件放在资产文件夹下
  • 在config文件夹中打开routes.js并从
  • '/': { 查看:“主页” } 到

    '/': { 视图:false } “资产”文件夹用作网站中的根文件夹。如果您的“angular.min.js”文件位于“assets\bower\u components\angular”文件夹中,则该文件将在浏览器中转换为“/bower\u components/angular/angular.min.js”。

    如中所述,您可以轻松使用Sails为静态站点提供服务

    然而,我还想推荐另一种方法——因为应用程序前端与前端完全解耦,所以您可以利用这种解耦,使用不同的策略分别扩展后端和前端

    所以现在,假设您将应用程序部署在一个实例上,您可以使用Nginx,它可以非常高效地为静态资产提供服务,并将其作为API的一种工具

    最终,当您需要扩展应用程序并希望将应用程序部署到实例集群(比如在AWS上)时,您可以将静态资产推送到S3 bucket上,并将API部署到EC2实例上。您不必每次在前端进行一些视觉更改时都重新部署API。您可以通过CDN(如AWS cloudfront)为整个前端提供服务,该CDN从单个S3存储桶中获取资产。为您的API提供服务的实例将完全摆脱为静态资产提供服务的开销

    '/': { view: 'homepage' } '/': { view: false }