我正在关注Michael Hartl的Rails教程并部署到Heroku。
我拥有对每个网络访问者公开的静态网页以及需要用户登录才能查看的动态和“受保护”网页。目前,所有网页都部署到网站的根目录:example.com/static-page
和example.com/users/1/
我的目标:
example.com/static-page
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'
答案 0 :(得分:1)
您可以让控制器为您的网页提供服务,或者只是将您的HTML文件放在public
中,并将其视为资产。
在任何一种情况下,如果它们都是静态的,您可能需要大量缓存或将CDN放在所有内容之前。
答案 1 :(得分: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
这将创建您需要的路线。但是,除非使用custom domain
,否则您将无法在Heroku上使用子域