Rails 4 在 scss 中配置和 erb 用于条件云端路径

Rails 4 configuration and erb in scss for conditional cloudfront paths

我正在尝试将动态云端资产完整路径添加到我的 scss 中。路径根据环境(暂存等)而变化

mystyle.scss

.some-image   {background-image: url(asset_path("#{Rails.configuration.adjusted_s3_cloudfront_path}landing/this-image.jpg"))}

或mystyle.scss

.some-image  {background-image: url(Rails.configuration.adjusted_s3_cloudfront_path('/landing/this-image.jpg'))}

或mystyle.scss.erb

.some-image  {background-image: url(<% Rails.configuration.adjusted_s3_cloudfront_path %>"/landing/this-image.jpg")}

development.rb

 config.adjusted_s3_cloudfront_path = "https://somecloufrontnumber.cloudfront.net"

production.rb

config.adjusted_s3_cloudfront_path = "https://#{ENV['S3_CLOUDFRONT_URL']}"

为什么不删除 config.adjusted_s3_cloudfront_path = "https://#{ENV['S3_CLOUDFRONT_URL']}" 以支持在 app/controllers/application.rb 中声明助手?


.some-image {
  background-image: url(<%= cloudfront_path('landing/this-image.jpg') %>)
}

app/controller/application.rb

class ApplicationController < ActionController::Base
  def cloudfront_path(asset_uri)
    return ENV['S3_CLOUDFRONT_URL'] + 'asset_url'
  end
end