4

我想要做的是有一个表单,您可以在其中上传图片,然后当您查看该对象时,图片在特定 div 中居中、垂直和水平地向上倾斜。它的大小是未知的,等等。

除非有办法使用 image_tag 帮助器将其垂直居中,否则我希望能够将图像用作背景图像。在我的 .css.scss 文件中,我希望能够执行类似的操作

.image_div {
     background-image: image_url("#{@object.image}");
     background-position: center
}

我使用 CarrierWave 上传图片,当我输出 @object.image 时,它​​会在我的计算机上提供图像的路径(所以我不知道在生产中是否会被视为路径或 url)。有任何想法吗?

4

1 回答 1

20

可以在 sass 文件中使用erb,但这是一个非常非常糟糕的主意,因为您的 css 必须在每个请求上进行解析(并且浏览器将无法缓存它)。

我建议直接在样式标签中的视图页面上粘贴一段 css。这样它就会被页面评估。有道理?


更新(添加请求的示例)

将此添加到您的实际视图中(例如 show.html.erb):

<style media="screen">
  .image_div { background-image: url(<%= @object.image %>); }
</style>

您可以将background-position声明保留在 css 文件中,因为它不是动态的。@object.image需要返回图像的实际路径,因此如果@object.image是 ruby​​ 对象,则需要访问存储路径的任何属性(@object.image.path@object.image.url任何适合您的代码库的属性)。

于 2013-01-24T02:50:06.273 回答