Rails -如何在css.erb中获取资源的绝对url



我想在css中获取图像的绝对url,如下所示:

"#{request.scheme}://#{request.host_with_port}/assets/image.png);"

但是我认为请求属性不能在css.erb中访问。谁能告诉我,我怎么能得到请求方案和host_with_port属性在我的css?

您可以通过在应用程序配置中定义asset_host来定义"scheme"(更正确的是:protocol)、主机和端口,尽管该定义将用于您的所有资产路径。

参考Rails API文档中的资产标签助手请求信息可以使用:

ActionController::Base.asset_host = Proc.new { |source, request|
      "#{request.protocol}#{request.host_with_port}"
}

如果您需要不同类型的资产的不同值,您可以定义过滤条件,例如:

ActionController::Base.asset_host = Proc.new { |source|
 if source.starts_with?('/images')
   "http://images.example.com"
 else
   "http://assets.example.com"
 end
}

您可以为任何背景图像或其他资产定义具有绝对url的css。如何在css文件中使用sass/scss.

获取绝对图像路径CSS

body {
  background-image: image-url(background.png);
}

在您的环境文件中使用您的

config.action_controller.asset_host = "http://your.domain.com/"
然后你的css看起来像这样:
body {
  background-image: url(http://your.domain.com/assets/background.png);
}

相关内容

  • 没有找到相关文章

最新更新