【问题标题】:Serving static content from a Rails app, hosted outside of the Rails app从 Rails 应用程序提供静态内容,托管在 Rails 应用程序之外
【发布时间】:2019-02-22 13:43:30
【问题描述】:

我有一个 Rails 应用程序,它结合了动态和静态页面。对于静态页面,我想让它们可供我的合作伙伴编辑,他不是 Rails 开发人员,因此不想进入 git 并直接在 repo 中进行更改。

所以,某种 CMS 似乎是正确的答案。

但出于维护原因 - 主要与升级我过去使用的 CMS gem 有关,我不想再在 Rails 应用程序中托管 CMS。我还希望获得其他好处,例如更好的编辑工具和更轻松地访问托管 CMS 解决方案附带的模板。

我在想我可以做一些事情,比如在 Wordpress 或 Squarespace 上托管静态内容,然后以某种方式从 Rails 应用程序提供静态内容。如果我使用单独的子域,我认为这很容易,但我想将所有内容保留在一个 www 子域下。

Rails 应用目前托管在 Heroku 上,我使用 Google Domains 进行 DNS。

我希望很清楚我想要实现的目标以及原因。有人对如何实现这一点有任何建议吗?

【问题讨论】:

    标签: ruby-on-rails wordpress content-management-system


    【解决方案1】:

    这可以在您的应用程序前面使用 nginx 反向代理来完成 - 您可以将不同的路径代理到不同的应用程序/主机,例如:

    server {
       server_name your_main_host.com;
    
       # other nginx vhost config..
    
       location /cms_prefix/ {
          proxy_set_header Host host_that_cms_expects.com;
          proxy_pass http://your_cms_host.url/;
       }
    
       location / {
          proxy_set_header Host your_main_host.com;
          proxy_pass http://your_rails_upstream;
       }
    }
    

    尚未将此方法部署到heroku,但这应该可以通过在“单人模式”中使用nginx buildpack 来实现(实际上您想要“代理模式”但使用自定义配置)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-24
      • 2018-09-28
      • 2012-08-04
      • 2013-08-28
      • 1970-01-01
      • 2016-05-02
      • 2010-11-30
      相关资源
      最近更新 更多