背景图像css在rails应用程序中不起作用

背景图像css在rails应用程序中不起作用,css,ruby-on-rails,Css,Ruby On Rails,我在我的rails应用程序中使用了背景图像属性,我以前使用过它,它非常简单,而且一直都能工作,但我不知道为什么它现在不能工作 body{ padding: 0; margin: 0; background-image: url("../assets/mainbanner.jpg"); background-attachment:fixed; background-size:cover; font-family: 'Lato', sans-serif

我在我的rails应用程序中使用了背景图像属性,我以前使用过它,它非常简单,而且一直都能工作,但我不知道为什么它现在不能工作

body{
    padding: 0;
    margin: 0;
    background-image: url("../assets/mainbanner.jpg");
    background-attachment:fixed;
    background-size:cover;
    font-family: 'Lato', sans-serif;
    display:block;
}

将.css文件更改为.scss,然后尝试此操作

body{
    padding: 0;
    margin: 0;
    background-image: url(asset_path('mainbanner.jpg'));
    background-attachment:fixed;
    background-size:cover;
    font-family: 'Lato', sans-serif;
    display:block;
}

您可以这样做:

background-image: url('/assets/mainbanner.jpg');

Rails的方法是使用获取正确的资源路径。这还向url添加了一个缓存破坏片段,从而避免了过时缓存资产的问题

例如,它还允许您稍后切换到内容交付网络(CDN)获取资产,而无需处理CSS/JS和视图中的硬编码路径

您可以通过两种方式执行此操作:

1.ERB(嵌入式Ruby) 将文件扩展名更改为
.css.erb

body {
    padding: 0;
    margin: 0;
    background-image: url("<%= asset_path('mainbanner.jpg') %>");
    background-attachment: fixed;
    background-size: cover;
    font-family: 'Lato', sans-serif;
    display: block;
}
SASS rails将rails资源帮助程序映射到SASS函数。然后,SASS编译器在编译样式表时插入正确的url。


背景图像:url('~images/shared/sign-page1.jpg')不,当然它没有显示,这就是为什么我说它不工作的原因,它在页面加载@vxpi时会闪烁一点。如果您找到合适的答案,您可以正确标记它。请详细说明代码工作的原因。仅仅发布代码示例不起作用。前来阅读您答案的人必须了解此代码的工作方式和原因,而不是盲目地复制和粘贴它。
body {
    padding: 0;
    margin: 0;
    background-image: url(asset_path('mainbanner.jpg'));
    background-attachment: fixed;
    background-size: cover;
    font-family: 'Lato', sans-serif;
    display: block;
}