SASS:背景图像 url 和 rails 控制器变量
SASS: Background image url and rails controller variables
我需要在 div class 中显示具有背景图像 属性 的用户的个人资料图片。问题是,image-url 和 asset-url 只能从 scss 文件中调用,而从 scss 文件中,@user 变量是不可见的。当我尝试访问用户 ID 时,它显示 "undefined local variable or method `params'"。在其他主题中找不到答案。
background-image: image-url(<%= @user.avatar %>)
您的资产文件被设计为本质上是静态的,尤其是当它们通过资产管道进行预编译、指纹识别等处理时。您不能在每次不同的用户登录时更改它们,因为这将需要一个全新的预编译、指纹识别和静态资产。
预编译现在对您来说不是问题,因为您处于开发环境中,但在生产环境中将是一个问题。
这是 style
属性更为合适的罕见场景之一!或者,某些页内 Javascript 会更改与您的 div 的 class/id/selector 匹配的所有元素的 style
属性。您可以为此使用 asset_url
and/or image_url
:
<img src="placeholder.gif" style="background-image: url(<%= asset_url(...)%>);" />
请参阅 AssetUrlHelper 文档,可在任何 Rails 视图中找到!
我需要在 div class 中显示具有背景图像 属性 的用户的个人资料图片。问题是,image-url 和 asset-url 只能从 scss 文件中调用,而从 scss 文件中,@user 变量是不可见的。当我尝试访问用户 ID 时,它显示 "undefined local variable or method `params'"。在其他主题中找不到答案。
background-image: image-url(<%= @user.avatar %>)
您的资产文件被设计为本质上是静态的,尤其是当它们通过资产管道进行预编译、指纹识别等处理时。您不能在每次不同的用户登录时更改它们,因为这将需要一个全新的预编译、指纹识别和静态资产。
预编译现在对您来说不是问题,因为您处于开发环境中,但在生产环境中将是一个问题。
这是 style
属性更为合适的罕见场景之一!或者,某些页内 Javascript 会更改与您的 div 的 class/id/selector 匹配的所有元素的 style
属性。您可以为此使用 asset_url
and/or image_url
:
<img src="placeholder.gif" style="background-image: url(<%= asset_url(...)%>);" />
请参阅 AssetUrlHelper 文档,可在任何 Rails 视图中找到!