2010-01-30 63 views
10

我无法弄清楚我忽略了什么,也许它很明显或缺乏理解。子域名和本地安装的Rails应用程序

我正在使用的应用程序使用托管服务器上的子域正常工作。我想通过本地安装会绕开一些路由问题,所以我读了关于更改/ etc/hosts并使用Ghost gem的信息。这两个似乎工作正常,即本地主机:3000 /成为myapp.local:3000,但我不明白如何去登录到子域帐户。下面是一个例子...

  • myapp.local:3000 /会话/新=默认的登录页面的应用
  • myapp.local:3000 /注册=默认注册页面
    • 我可以在这里创建一个帐户Sub1的
    • 感谢页面显示瓦特/参考sub1.myapp.com它指向托管应用程序(本地数据库显示这一领域也一样)
  • sub1.myapp.local手动添加到/ etc/hosts和dscacheutil -flushcache
  • sub1.myapp.local:3000 /会话/新是子域
    • 登录尝试返回,这不是一个有效的域。这似乎是有道理的,因为本地数据库在托管服务器上显示url为sub1.myapp.com。

所以我的问题是,是否有一个本地的解决方法,我可以用于开发或已我完全错过了沿途的一个基本概念?

+0

如果sub1.myapp.local响应,你知道你的主机的设置是否正确。看起来有些东西没有存储已使用的* actual *域,或者存在根域的配置设置。 – wesgarrison 2010-01-30 20:02:59

回答

11

您可能只想尝试将实际的点com放入/ etc/hosts文件中。

即:

 
127.0.0.1 sub1.myapp.com 
127.0.0.1 myapp.com 
127.0.0.1 anyothersubdomains.myapp.com 

这是什么通常不会是骗你的电脑,让它觉得是所有这些的主机,所以你不能去真正的网站了在Web浏览器。

如果你确实希望它是.local,大概是为了让你可以在本地拷贝的时候参考真正的在线网站,你应该看看app/controllers/application_controller.rb(有时是应用程序。 rb)并在那里寻找逻辑,根据子域有助于确定做什么。也许它的硬编码只能查找.com或其他东西。

+0

圣牛小贩!这只是我正在寻找的解决方法... 我试过了,它可以工作,例如我可以在本地访问该应用,但无法导航到目前可以容忍的公共域。我现在真正需要的是确保我可以在本地运行它。 通过application.rb看,似乎有点时髦的重定向逻辑。猜猜我会将其添加到我要学习的东西列表中。 感谢您的帮助......这让我在过去的一两天中难倒了。 – Shawn 2010-01-30 19:56:38

1

如果您使用webrick服务器或诸如Puma进行开发,您可以使用lvh.me访问您的子域。例如

http://sub.lvh.me:3000/

http://lvh.me:3000/等于http://localhost:3000/