我参加了本教程http://railscasts.com/episodes/221-subdomains-in-rails-3并尝试在http://ngtv2.info
中实施但是我把代码放在routes.rb
之后匹配'/'=> 'projects#show',:constraints => {:subdomain => /.+/}
浏览器说“找不到服务器”, Firefox无法在kingpangilinan.ngtv2.info找到服务器
感谢任何帮助。
答案 0 :(得分:5)
您必须将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
顺便说一句:你不应该在没有任何保护的情况下部署尚未完成的应用程序。开发应该在本地或至少在密码安全网站后面进行。
答案 1 :(得分:4)
这与Rails有关没有,与DNS以及互联网的运作方式有关。
您必须为ngtv2.info配置带有通配符子域条目的DNS区域,然后才能尝试设置Rails来捕获这些子域。
要在本地测试子域路由,应该尝试在您的计算机上运行该应用,并在http://lvh.me:3000
而不是http://localhost:3000
上浏览到该应用。然后你也可以浏览到http://anysubdomain.lvh.me:3000
,Rails会发现它是一个子域名。
答案 2 :(得分:0)
如果要使用子域约束在本地计算机上进行开发,请通过添加
来修改/ etc / hosts127.0.0.1 SUBDOMAIN.localhost.de
然后rails可以根据您的请求推断子域。确保使用在/ etc / hosts中指定的URL而不是localhost:3000。