2014-03-19 101 views
2

我遵循Michael Hartl的Rails教程並部署到Heroku。將靜態頁面部署到域根和rails應用程序到子域

我有靜態頁面公開給每個Web訪問者和動態和「保護」頁面,需要用戶登錄才能查看它們。目前,所有的頁面都部署到Web站點的根: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' 

回答

1

你既可以有一個控制器服務頁面或簡單地把你的HTML文件中public的對待他們的資產。

無論是哪種情況,如果它們確實是靜態的,您可能需要大量緩存或將CDN放在所有內容之前。

1

你會想是這樣的:

#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

+1

謝謝我會嘗試。別擔心,我只是爲了這個目的而購買了域名;) – dialex

相關問題