我最近向我的 Rails 路由文件添加了子域约束
constraints(:subdomain => 'new') do
devise_for :customers do
get "/customers/sign_up" => "registrations#new"
post "/customers" => "registrations#create"
put "/customers/:id" => "registrations#update"
end
match '/' => 'roxy#index'
namespace :roxy, :path => '/' do
resources :customers
resources :surveys
end
end
为了在本地测试子域路由约束,我将此行添加到我的主机文件中。
127.0.0.1 new.localhost.local
现在,我在浏览器中通过 URL new.localhost.local:3000 测试我的应用程序。加载每个页面大约需要 10 - 15 秒,速度非常慢。如果我删除子域限制并直接访问 127.0.0.1:3000,一切都会变得又快又快。
我做错了什么?我是 Rails 新手,所以请告诉我是否有更好的方法在 Rails 中进行子域路由,或者是否有我需要配置的设置。
最佳答案
想通了。这与 Rails、子域或 Thin 无关。事实证明,与其他 unixy 事物不同,OS X 为 mDNS 功能保留了 .local TLD。对于每个页面,DNS 解析在加载我的应用程序之前都会超时。所以我只是将/etc/hosts 文件更改为
127.0.0.1 new.localhost.dev
现在一切都运行良好。
了解更多:http://www.justincarmony.com/blog/2011/07/27/mac-os-x-lion-etc-hosts-bugs-and-dns-resolution/
关于ruby-on-rails-3 - 子域约束(Rails 3)使本地服务器(瘦)如此慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13256485/