css - SASS:背景图片 url 和 rails Controller 变量

标签 css ruby-on-rails sass assets

我需要在 div 类中显示具有 background-image 属性的用户的个人资料图片。问题是,image-url 和 asset-url 只能从 scss 文件中调用,而从 scss 文件中,@user 变量是不可见的。当我尝试访问用户 ID 时,它显示“未定义的局部变量或方法‘params’”。在其他主题中找不到答案。

background-image: image-url(<%= @user.avatar %>)

最佳答案

您的 Assets 文件被设计为本质上是静态的,尤其是当它们通过预编译、指纹识别等进入 Assets 管道时。您不能在每次不同的用户登录时更改它们,因为这将需要一个全新的预编译、指纹识别和静态 Assets 。

预编译现在对您来说不是问题,因为您处于开发环境中,但在生产环境中将是一个问题。

这是 style 属性更为合适的罕见场景之一!或者,某些页内 Javascript 会更改与您的 div 的类/id/选择器匹配的所有元素的 style 属性。您可以为此使用 asset_url 和/或 image_url:

<img src="placeholder.gif" style="background-image: url(<%= asset_url(...)%>);" />

参见 AssetUrlHelper文档,在任何 Rails View 中都可用!

关于css - SASS:背景图片 url 和 rails Controller 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37864576/

相关文章:

css - 创建由线连接的 CSS3 圆

javascript - 是否可以选择所有与选择器不匹配的元素?

javascript - Wordpress Envira Gallery 不会以禁止状态加载

ruby-on-rails - ActiveAdmin 和就地编辑

css - chrome 中的轻微锯齿状边缘(CSS 变换)

ruby-on-rails - 如何在 centOS 上安装 ruby​​-oci8?

ruby-on-rails - 使用 Rspec + Capybara + Ember 出现不一致的 "Unable to find css"错误

css - 变量动态分配给第 nth-child

css - 使用 CSS 实现响应式图像翻转

php - 有谁知道如何在 Laravel 4 上安装 SASS?