子域名和本地安装的Rails应用程序

我无法弄清楚我在忽视什么,也许是明显的或缺乏理解。

我正在使用的应用程序使用托管服务器上正常工作的子域。 我认为本地安装会引发一些关于路由的问题,所以我读到了对/ etc / hosts进行更改并使用Ghost gem。 两者似乎工作正常,即localhost:3000 /变成myapp.local:3000,但我不明白如何登录到子域帐户。 这是一个例子……

  • myapp.local:3000 / session / new =应用程序的默认登录页面
  • myapp.local:3000 / signup =默认注册页面
    • 我可以在这里创建一个帐户,例如Sub1
    • 感谢页面显示了对sub1.myapp.com的引用,该引用指向托管应用程序(本地数据库也显示此域)
  • sub1.myapp.local手动添加到/ etc / hosts和dscacheutil -flushcache
  • sub1.myapp.local:3000 / session / new是子域名
    • 登录尝试返回此不是有效域。 这似乎是有道理的,因为本地数据库在托管服务器上将url显示为sub1.myapp.com。

所以我的问题是,我是否可以使用本地解决方案进行开发,或者我是否完全错过了一个基本概念?

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

即:

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

这通常会让你的计算机误以为它是所有这些主机的主机,所以你不能再在网络浏览器中访问真实网站了。

如果你确实希望它是.local,可能是因为你可以在处理本地副本时参考真实的在线网站,你应该看看app / controllers / application_controller.rb(有时是application.rb)并且看看对于那里的逻辑,有助于根据子域确定要做什么。 也许它的硬编码只能查找.com或其他东西。

如果您正在使用webrick服务器或Puma之类的东西进行开发,您可以使用lvh.me来访问您的子域。 例如

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

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