我使用Amazon S3进行文件上传,使用Cloudfront进行静态资产服务,在我的config / environments / staging.rb中,我写了
ActionController::Base.asset_host = Proc.new { |source|
if source.include?('/assets')
"d1xw0c7m8has5k.cloudfront.net"
else
"#{ENV['FOG_DIRECTORY']}.s3.amazonaws.com"
end
}
ActionMailer::Base.asset_host = Proc.new { |source|
if source.include?('/assets')
"d1xw0c7m8has5k.cloudfront.net"
else
"#{ENV['FOG_DIRECTORY']}.s3.amazonaws.com"
end
}
但是在我的邮件中,通过rails应用程序发送,我看到image_tag src
属性为空?
即没有显示图像。
我无法识别此设置有什么问题,请帮助。
答案 0 :(得分:9)
我通过将这些配置放在config / environments / staging.rb
中的块中来解决此问题Demo::Application.configure do
config.action_controller.asset_host = Proc.new { |source|
if source.include?('/assets')
"d1xw0c7m8has5k.cloudfront.net"
else
"#{ENV['FOG_DIRECTORY']}.s3.amazonaws.com"
end
}
config.action_mailer.asset_host = Proc.new { |source|
if source.include?('/assets')
"http://d1xw0c7m8has5k.cloudfront.net"
else
"http://#{ENV['FOG_DIRECTORY']}.s3.amazonaws.com"
end
}
end
并且有必要提供带有action_mailer asset_host的协议,即' HTTP'