【问题标题】:Deploy static pages to domain root and rails application to subdomain将静态页面部署到域根目录并将 Rails 应用程序部署到子域
【发布时间】:2014-03-19 09:01:08
【问题描述】:

我正在关注 Michael Hartl 的 Rails 教程并部署到 Heroku。

我有对每个网络访问者公开的静态页面和需要用户登录才能查看的动态和“受保护”页面。目前所有页面都部署到网站根目录:example.com/static-pageexample.com/users/1/

我的目标

  • 将静态页面部署到根目录,如example.com/static-page
  • 将 rails 的页面部署到子域,例如 app.example.com/users/1

我认为解决方案涉及更改路由文件。是否有任何教程或视频解释如何做到这一点?我是 Rails 的新手。

我的路线文件:

Dcid::Application.routes.draw do
  resources :users
  resources :sessions, only: [:new, :create, :destroy]

  root 'static_pages#home'

  match '/home',    to: 'static_pages#home',    via: 'get'
  match '/about',   to: 'static_pages#about',   via: 'get'

  match '/signup',  to: 'users#new',            via: 'get'
  match '/signin',  to: 'sessions#new',         via: 'get'
  match '/signout', to: 'sessions#destroy',     via: 'delete'

【问题讨论】:

    标签: ruby-on-rails heroku deployment routing subdomain


    【解决方案1】:

    您可以让一个控制器为您的页面提供服务,或者只是将您的 HTML 文件放在 public 中,然后将它们视为资产。

    在任何一种情况下,如果它们确实是静态的,您可能需要大量缓存或将 CDN 放在所有内容的前面。

    【讨论】:

      【解决方案2】:

      你会想要这样的:

        #config/routes.rb
        root 'static_pages#home'
      
        #Subdomain
        constraints subdomain: 'app' do
           resources :users
        end
      
        #Pages
        pages = %w(home about)
        for page in pages do
           get "/#{page}", to: "static_pages##{page}"
        end
      
        #Resources
        resources :users do
           get :new, as: :collection
        end
      
        resources :sessions, only: [:new, :create, :destroy] do
           get :signin, action: :new, as: :collection
           delete :signout, to: :destroy, as: :collection
        end
      

      这将创建您需要的路线。但是,您将无法在 Heroku 上使用子域,除非您使用 custom domain

      【讨论】:

      • 谢谢,我会试试的。别担心,我只是为了这个目的买了一个域名;)
      猜你喜欢
      • 1970-01-01
      • 2012-06-25
      • 2021-02-19
      • 1970-01-01
      • 2022-11-11
      • 2020-12-19
      • 2022-06-14
      • 1970-01-01
      • 2018-12-01
      相关资源
      最近更新 更多