Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.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
Ruby on rails 如何区分出现在同一URL上的动态和静态内容_Ruby On Rails_Rest_Express_Architecture - Fatal编程技术网

Ruby on rails 如何区分出现在同一URL上的动态和静态内容

Ruby on rails 如何区分出现在同一URL上的动态和静态内容,ruby-on-rails,rest,express,architecture,Ruby On Rails,Rest,Express,Architecture,我正在部署一个由静态(营销)网站和动态应用程序组成的Web应用程序 我的目标是: 将动态内容和静态内容分开。更新静态站点不应进行代码重新部署;更新应用程序不应触动静态站点 使其看起来都位于同一个URL,例如www.mysite.com 想想Twitter是如何工作的:转到一个由法律/营销控制的静态页面,同时转到您的提要 我看到了一些选项,可能需要一些帮助: 设备:基于URL的路由,如NetScaler/F5。太贵了,而且在云部署中效果不佳(Heroku/Jitsu/AWS/etc) 代理:静态站

我正在部署一个由静态(营销)网站和动态应用程序组成的Web应用程序

我的目标是:

  • 将动态内容和静态内容分开。更新静态站点不应进行代码重新部署;更新应用程序不应触动静态站点
  • 使其看起来都位于同一个URL,例如www.mysite.com
  • 想想Twitter是如何工作的:转到一个由法律/营销控制的静态页面,同时转到您的提要

    我看到了一些选项,可能需要一些帮助:

  • 设备:基于URL的路由,如NetScaler/F5。太贵了,而且在云部署中效果不佳(Heroku/Jitsu/AWS/etc)
  • 代理:静态站点部署到不同的URL(例如web.mysite.com),动态站点知道特殊路径并检索和缓存数据。它可以工作,但复杂而混乱
  • CORS:所有静态服务均来自静态网站www.mysite.com,但使用CORS从alternate api.mydata.com加载应用程序模板、JS、CSS等,并通过REST加载动态数据
  • 3听起来不错,但担心CORS浏览器支持,静态和动态站点仍然受到一些污染


    FWIW,在nodejs中实现动态,但也可以很容易地应用于RoR甚至JavaEE。

    如果您不介意将静态内容放在特定的子目录中(如twitter的/privacy),那么我认为您需要做的就是将该目录添加到.gitignore(或其他VCS忽略文件)中,并在没有该子目录的情况下部署应用程序。您需要一些其他的过程来上传对静态内容的更改


    至于服务,您应该有一个前端Web服务器(可能是apache或ningx)或其他代理服务器来服务所有静态内容,包括应用程序动态部分的图像和js/css。如果您的静态站点是.html等,那么应该以相同的方式提供服务,而不必接触正在运行的应用程序。您还可以在web或代理服务器配置中更明确地指出,它应该为该子目录中的所有内容提供服务,而无需将请求转发给您的应用程序。

    如果您不介意将静态内容放在特定的子目录中(如twitter的/privacy),然后我认为您需要做的就是将该目录添加到您的.gitignore(或其他VCS ignore文件)中,并在没有该子目录的情况下部署应用程序。您需要一些其他的过程来上传对静态内容的更改


    至于服务,您应该有一个前端Web服务器(可能是apache或ningx)或其他代理服务器来服务所有静态内容,包括应用程序动态部分的图像和js/css。如果您的静态站点是.html等,那么应该以相同的方式提供服务,而不必接触正在运行的应用程序。您还可以在web或代理服务器配置中更明确地指出,它应该为该子目录中的所有内容提供服务,而无需将请求转发给您的应用程序。

    我原则上同意。困难在于,当我无法控制服务器时,即使用PaaS或类似工具时,无法将其上载。如果我使用自己的基础设施(即足够大),那么我会有静态服务器和应用程序服务器,前面会有一个F5或NetScaler或任何路由器。我原则上同意。困难在于,当我无法控制服务器时,即使用PaaS或类似工具时,无法将其上载。如果我使用自己的基础设施(即足够大),那么我会有静态服务器和应用程序服务器,前面会有一个F5或NetScaler或任何路由器。