我的前端有一个AngularJS应用程序,后端有一个Ruby on Rails(RoR)。
AngularJS代码将调用REST API(由RoR实现),它将使用JSON进行响应。那个JSON将被AngularJS吸收。 100%的业务逻辑(包括路由)将驻留在客户端(AngularJS)上。 RoR唯一能做的就是通过REST API提供数据。
我将在客户端使用Gulp进行缩小等,因此我不需要资产管道。我也不打算使用turbolinks或咖啡脚本。
我想将我的客户端部署为RoR应用程序的一部分。
我遇到的问题是......将所有客户端代码(HTML,CSS,JS / AngularJS)放入公共文件夹是否有任何问题。通过尝试将我的AngularJS应用程序拆分为RoR标准文件夹,我似乎无法获得更多收益。实际上,它似乎正好相反,即我只会失去,因为我不得不绕过一些RoR的事情,比如绕过我赢得的东西(即资产管道,涡轮链接......)。 )
如果这种方法有问题,它是什么?
作为替代方案,单独部署双方(客户端和服务器)是否有任何好处(即,在2个不同的部署中)?
答案 0 :(得分:2)
这种方法没有任何问题,我最近在一个同事中看到它已经工作了几年并且它工作得很好,虽然它是前端的ReactJs,但是它并不重要。
如果我打算使用更复杂的应用程序来运行大量微服务以获得最佳的正常运行时间和容错能力,我会单独部署它们。例如,Netflix将有一个微服务,如果服务可用,它会为您提供推荐电影的列表,但它会回退到预定义列表(另一个微服务)。 前端会询问来自一方的数据,如果失败则会使用其他服务。
当然,您可以使用单个部署的多台服务器,但这限制了我独立扩展它们的能力。例如。从CDN提供SPA并仅部署您的后端。