我需要在div类中显示具有background-image属性的用户的个人资料图片。问题是,image-url和asset-url只能从scss文件调用,而从scss文件调用@user变量是不可见的。它说"未定义的局部变量或方法`params'"当我尝试访问用户ID时。无法在其他主题中找到答案。
background-image: image-url(<%= @user.avatar %>)
答案 0 :(得分:2)
您的资产文件本质上是静态的,特别是当它们通过预编译,指纹识别和所有内容进入资产管道时。每次不同的用户登录时,您都无法对其进行更改,因为这需要一个全新的预编译,指纹和静态资产。
预编译现在不是问题,因为您处于开发环境中,但在生产中会出现问题。
这是罕见的情况之一,style
属性更合适!或者,一些页内Javascript会更改与div的class / id / selector匹配的所有元素的style
属性。您可以使用asset_url
和/或image_url
:
<img src="placeholder.gif" style="background-image: url(<%= asset_url(...)%>);" />
请参阅任何Rails视图中提供的AssetUrlHelper文档!