有没有办法在开发中设置set config.action_controller.asset_host

sup*_*ary 7 ruby-on-rails

在我的production.rb中,我将asset_host设置为CloudFront,如下所示:

config.action_controller.asset_host = 'http://xxxxxxxx.cloudfront.net'
Run Code Online (Sandbox Code Playgroud)

现在我发现在某些情况下(特别是输出JavaScript嵌入到另一个站点)我需要在开发环境中设置asset_host,默认的null不会删除它.理想情况下我想设置:

config.action_controller.asset_host = 'http://localhost:3000'
Run Code Online (Sandbox Code Playgroud)

但这个端口无法保证,我不愿意硬编码.有没有办法将asset_host设置为当前域和端口?

谢谢!

Pau*_*lgo 8

您可以使用环境变量或Rails初始化程序参数

config.action_controller.asset_host = ENV[ASSET_HOST].empty? ? 'http://' + Rails::Server.new.options[:Host] + ':' + Rails::Server.new.options[:Port] : ENV[ASSET_HOST]
Run Code Online (Sandbox Code Playgroud)

这样,如果设置环境变量,则使用该地址,否则将使用默认值.