我有一个项目,在生产中运行正常(Linux + Apache)
但我使用WEBrick开发了两台计算机,一台是Mac(localhost:3000),另一台是通过另一台IP的Linux(例如:http://145.xx.xx.20:3000)
要使用url_for
(之前的include Rails.application.routes.url_helpers
),我需要在development.rb
中进行配置:
routes.default_url_options[:host]="http://145.xx.xx.20"
routes.default_url_options[:port]="3000"
如果我在production.rb
中添加相同的配置,它在生产数据库中也可以使用WEBrick rails s -e=production
,这对于使用生产数据库进行开发是完美的。
我有两个问题:
在开发中,¿我如何使url_for()
返回正确的网址,这取决于我是在一台计算机还是另一台计算机上? ht..p:/ localhost:3000或http://145.xx.xx.20/:3000
在Apache环境(实际生产)中,似乎忽略了production.rb
,因为总是很好。 http://real.ip.production/为什么?
答案 0 :(得分:1)
我将此用于电子邮件中的正确域名和端口(开发模式)
config.action_mailer.default_url_options = { :host => lambda { |env| Rack::Request.new(env).host }, :port => 3000 }
我认为您需要使用一些这样的想法,但对于 routes.default_url_options