【问题标题】:Serve Images from Asset Host When Using CSS background-image property in Rails在 Rails 中使用 CSS background-image 属性时从资产主机提供图像
【发布时间】:2010-04-21 02:34:41
【问题描述】:

我最近开始为我的 Rails 项目从资产主机提供静态资产(主要是图像)。

我的一小部分图片没有从资产主机提供,因为它们是使用 CSS background-image 属性而不是 image_tag 显示的

是否有干净的解决方法?我宁愿不创建“样式表”控制器,因为我正在使用 asset-packager 插件并且希望保留此功能。

谢谢! 萌

【问题讨论】:

  • 你应该接受一些答案:p

标签: ruby-on-rails css cdn


【解决方案1】:

您应该能够将完整路径放在 CSS 中的 url 中:

background:url({asset_domain}/images/image.png) repeat-x left top;

【讨论】:

  • 我考虑过这样做。但是,我设置 CDN 的原因之一是我可以使用多个主机名来并行化请求。此外,对资产域进行硬编码可能会导致我的开发环境出现一些问题。
  • 嗯,在多个域之间存在一个最佳点和域查找的成本——所以也许在单个域上拥有 css 图像是可以的?至于dev,你能用你的hosts文件把请求映射到本地域吗?
  • 实际上 - 您可以向资产打包程序添加一些智能来设置它。将域名作为 rake 任务的一部分注入 CSS?
  • 超级有帮助!在我拥有的四个子域中,我将一个专门用于 CSS 背景图像,然后将其余三个用于非 background:url 图像。谢谢托比。
  • 哦,我将使用 rake 任务在 css 中创建分配资产子域。
【解决方案2】:

我在 Rails 3.0.x 下执行以下操作

background: url(<%= image_path("logo.png") %>) no-repeat;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-11
    • 2019-09-09
    • 1970-01-01
    • 2015-09-14
    • 2016-06-26
    相关资源
    最近更新 更多