在我的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设置为当前域和端口?
谢谢!
您可以使用环境变量或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)
这样,如果设置环境变量,则使用该地址,否则将使用默认值.