Rails:使用image_tag或css背景图像显示图像会更好吗?

时间:2012-12-24 23:58:08

标签: css ruby-on-rails image

我有一张图片,我需要在索引页面上突出显示/立即显示。我想知道使用Rails的image_tag()帮助器是否更好,或者使用CSS的背景图像属性来快速渲染图像。或者甚至重要吗?

3 个答案:

答案 0 :(得分:3)

如果您在页面的html中引用图像,则必须解析页面并下载图像。

如果您在外部样式表中引用图像,则必须解析页面,然后必须下载和解析CSS,然后需要下载图像。由于到服务器的往返次数,这将会变慢。

如果您的CSS是内联的,那么您将返回解析第一页,然后下载图像。

一个有趣的选择,如果你的图像不是太大,最终的表现就是在页面中内嵌你的CSS,然后将图像直接嵌入到CSS中,避免在初始版本之后下载任何内容。页面HTML。 e.g。

<head>
  <style>
    #foo { background-image: url(data:image/png;base64,iVBORw0K...) 
  </style>
</head>
<body>
  <div id="foo"></div>
</body>

Rails(实际上是SASS)有助手将资产数据内联到CSS文件中(搜索asset-data-url)。我从来没有用它来将CSS内联到HTML中,但这至少是可能的。

答案 1 :(得分:1)

To Rails,没关系。您选择的内容最终将更多地基于该图像应该如何显示。文字背后?作为标题图片?这将指导您使用image_tag或CSS。

答案 2 :(得分:1)

如果图像被视为内容,则应将其渲染为具有相应替代文字的图像标记。如果是装饰,它应该是背景图像。