ruby-on-rails 关于Rails 7中CSS绑定的问题

nhaq1z21  于 2023-01-03  发布在  Ruby
关注(0)|答案(1)|浏览(197)

Rails 7.新的应用程序带有Bootstrap CSS,JS绑定和CSS绑定。这将产生以下结构:

app/assets/builds, 
app/images/foo.jpg, 
app/assets/stylesheets/application.bootstrap.scss

并使用Yarn将Bootstrap添加到package.json中,使用ESBuild进行JS构建,使用Sass进行CSS构建。
在我尝试将一个简单的CSS类添加到application.bootstrap. scsssass文件之前,所有这些都可以正常工作:

.bg {
  background-image: url("foo.com");
}

这里我真正想要的是app/assets/images/foo.jpg中的资产能够被正确引用。它是一个scss文件,所以sass。当我使用sass命令时:

background-image: image-url("foo.com");

background-image: url(image-path("foo.com"));

在开发或生产中没有任何工作,因此我的application.css构建文件是正确的。2我得到了一些语法错误,以“我们找到了一个.jpg,但应该是(1 px 0 solid)”或类似的结尾。3换句话说,sass编译没有生成有效的css构建。
我应该在这里做些什么来使一个简单的类与图像资产成为我交付的application.css包的一部分?我应该创建一个单独的css文件,并将其添加到链轮清单吗?看起来有点矫枉过正。
目前唯一起作用的是在我的ERB布局中添加一个内联样式,这是完全错误的,但我所能做的就是继续前进。
作为一个额外的问题,我知道我不应该在这里问,我还想引用一个我添加到Rails应用程序的图像,这样https://myapp.com/my-image.png就可以使用了。我曾经把它放在/public/my-image. png中,但是如果我想使用/app/assets/images/my-image. jpg,我的链接会是什么呢?我想它会是所有的指纹,无法访问。但也许我错了。引用资产而不是将其停放在/public中有什么意义吗?或者我是被迫使用/public的吗?

ghhkc1vu

ghhkc1vu1#

参见https://github.com/rails/cssbundling-rails/issues/102
你有没有试
. test {背景图像:网址("foo.jpg");}
https://github.com/rails/sprockets-rails#initializer-options
配置资产。解析css网址中的资产
启用此选项时,sprockets-rails将注册CSS后处理器以解析url()函数调用中引用的资源,并将其替换为摘要路径。

相关问题