我去了本教程http://railscasts.com/episodes/221-subdomains-in-rails-3并尝试在http://ngtv2.info中实现
但是在我将代码放入 routes.rb 之后
匹配 '/' => 'projects#show', :constraints => { :subdomain => /.+/ }
浏览器说“找不到服务器”,Firefox 在 kingpangilinan.ngtv2.info 找不到服务器
任何帮助表示赞赏。
我去了本教程http://railscasts.com/episodes/221-subdomains-in-rails-3并尝试在http://ngtv2.info中实现
但是在我将代码放入 routes.rb 之后
匹配 '/' => 'projects#show', :constraints => { :subdomain => /.+/ }
浏览器说“找不到服务器”,Firefox 在 kingpangilinan.ngtv2.info 找不到服务器
任何帮助表示赞赏。
您必须设置 DNS 以指向您的网络服务器。只是告诉 Rails 回答特定域并不会设置 DNS 来做同样的事情。
$ nslookup kingpangilinan.ngtv2.info
** server can't find kingpangilinan.ngtv2.info: NXDOMAIN
使用您的域提供商的界面或直接要求他们设置通配符 DNS 条目。
如果您使用的是 Rails 3,则不应该使用 Railscast(无论如何它是从 2008 年开始的)。有一个专门针对 Rails 3 的较新版本:http ://railscasts.com/episodes/221-subdomains-in-rails-3
顺便说一句:您不应该在没有任何保护的情况下部署尚未完成的应用程序。开发应该在本地或至少在密码保护的网站之后进行。
这与 Rails无关,与 DNS 和 Internet 的工作方式无关。
您必须使用通配符子域条目为 ngtv2.info 配置 DNS 区域,然后才能尝试设置 Rails 以捕获这些子域。
要在本地测试子域路由,您应该尝试在您的计算机上运行该应用程序并在http://lvh.me:3000
而不是http://localhost:3000
. 然后你也可以浏览到http://anysubdomain.lvh.me:3000
,Rails 会发现它是一个子域。
如果您想使用子域约束在本地计算机上进行开发,请通过添加修改 /etc/hosts
127.0.0.1 SUBDOMAIN.localhost.de
然后 rails 可以从您的请求中推断出子域。确保使用您在 /etc/hosts 中指定的 URL,而不是 localhost:3000。