1

我去了本教程http://railscasts.com/episodes/221-subdomains-in-rails-3并尝试在http://ngtv2.info中实现

但是在我将代码放入 routes.rb 之后

匹配 '/' => 'projects#show', :constraints => { :subdomain => /.+/ }

然后输入kingpangilinan.ngtv2.info

浏览器说“找不到服务器”,Firefox 在 kingpangilinan.ngtv2.info 找不到服务器

任何帮助表示赞赏。

4

3 回答 3

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

顺便说一句:您不应该在没有任何保护的情况下部署尚未完成的应用程序。开发应该在本地或至少在密码保护的网站之后进行。

于 2011-12-07T19:57:55.390 回答
4

这与 Rails无关,与 DNS 和 Internet 的工作方式无关。

必须使用通配符子域条目为 ngtv2.info 配置 DNS 区域,然后才能尝试设置 Rails 以捕获这些子域。

要在本地测试子域路由,您应该尝试在您的计算机上运行该应用程序并在http://lvh.me:3000而不是http://localhost:3000. 然后你也可以浏览到http://anysubdomain.lvh.me:3000,Rails 会发现它是一个子域。

于 2011-12-08T00:51:18.393 回答
0

如果您想使用子域约束在本地计算机上进行开发,请通过添加修改 /etc/hosts

127.0.0.1       SUBDOMAIN.localhost.de

然后 rails 可以从您的请求中推断出子域。确保使用您在 /etc/hosts 中指定的 URL,而不是 localhost:3000。

于 2015-03-19T17:00:13.597 回答