ruby-on-rails – Rails 4子域不适用于生产
我创建了一个包含3个子域的Rails 4应用程序.
开发领域: > mydomain.dev 生产域(Ngnix with Passenger): > app.mydomain.com(www.mydomain.com和mydomain.com显示其他页面,而不是应用程序) 我的config / routes.rb看起来像这样: Rails.application.routes.draw do namespace :api,constraints: { subdomain: 'api' },path: '/',defaults: { format: :json } do namespace :v1 do resources :clients,only: [:create,:show] end end namespace :account,constraints: { subdomain: 'account' },path: '/' do get '/:locale' => 'welcome#index',locale: /en|pt/ root 'welcome#index' scope "(:locale)",locale: /en|pt/ do get :sign_in,to: 'sessions#new' post :sign_in,to: 'sessions#create' end end get '/:locale' => 'welcome#index',locale: /en|pt/ root 'welcome#index' scope "(:locale)",locale: /en|pt/ do resource :session,only: [:new,:create,:destroy] get :login,to: 'sessions#new',as: :login end end 我的ngnix虚拟主机文件: server { listen 80; listen [::]:80; # SSL configuration # listen 443 ssl; listen [::]:443 ssl; server_name mydomain.com api.mydomain.com account.mydomain.com; passenger_enabled on; passenger_ruby /home/username/.rvm/gems/ruby-2.2.2@myapp/wrappers/ruby; root /var/sites/mydomain.com/current/public; ssl on; ssl_certificate /etc/nginx/ssl/mydomain.com/server.crt; ssl_certificate_key /etc/nginx/ssl/mydomain.com/server.key; } 问题是,在我的开发机器(localhost)或开发环境中,它的工作非常好,正如我想的那样.但在生产中我得到了错误:“您正在寻找的页面不存在.”,使用此日志信息: 参观:https://account.mydomain.com/en/sign_in
在其他作品中,account.mydomain.com和api.mydomain.com仍然充当我的主域“mydomain.com”(作为同一个域). 更新: 我在我的页面上添加了这个代码: <%= request.domain.inspect %><br> <%= request.subdomain.inspect %> 访问:http://api.mydomain.co.ao
但我的子域名只有:api 怎么了? 解决方法
默认
tld_length = 1 您需要将tld_length更新为2,例如:co.in,co.au 尝试: config.action_dispatch.tld_length = 2 在config / enviroments / production.rb中 Reference (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |