我在我的Padrino configuration中使用子域。我在AWS Route 53中创建了多个A记录,以便路由到诸如api.myapp.com和amp; admin.myapp.com,myapp.com,www.myapp.com。这是按预期工作的。这是我的配置:
Padrino.mount('MyApp::App', :app_file => Padrino.root('app/app.rb')).host('api.myapp.com')
Padrino.mount('MyApp::Manager', :app_file => Padrino.root('manager/app.rb')).host('manager.myapp.com')
Padrino.mount("MyApp::Admin", :app_file => File.expand_path('../../admin/app.rb', __FILE__)).host("admin.myapp.com")
Padrino.mount('MyApp::Web', :app_file => Padrino.root('web/app.rb')).to('/')
为了这个问题,我已经将真实姓名替换为“myapp”。问题是当我尝试在我的localhost上访问这些子域时。它保持路由到web / app.rb(只是'/')。我尝试改变我的/etc/hosts
:
127.0.0.1 localhost
127.0.0.1 manager.myapp.com
127.0.0.1 api.myapp.com
127.0.0.1 admin.myapp.com
然后,当我尝试点击manager.myapp.com:3000
时,它会路由到作为根域(MyApp :: Web)的服务。为什么会这样?
答案 0 :(得分:0)
我在config/apps.rb
中进行了一些配置更改,以使用特定的子域来确定它是在本地部署还是在本地运行。然后我使用以下值更新了/etc/hosts
:
127.0.0.1 manager.localhost manager
127.0.0.1 api.localhost api
127.0.0.1 admin.localhost admin
但这并不意味着什么。问题是我在端口3000上运行,这些值没有考虑到。由于我正在与/etc/hosts
战斗(并希望得到一些指导),我只是在端口80上运行我的本地服务器,所有工作正常。