如何让 Rails 使用 Yarn 包中包含的图像/字体?

And*_*vey 5 ruby-on-rails yarnpkg

在第一次将应用程序迁移到 Rails 5.1 时,我尝试使用 yarn 而不是 bower 来管理前端依赖项。

一切都很好,我可以通过相关的清单文件包含js和文件。cssapplication.js/css

但是,如果这些文件依赖于其他资源(例如,图像、字体等的目录),那么 Rails 对它们一无所知。

给定一个纱线包,其中包括:

/css
  |-styles.css
/images
  |-background.jpg
Run Code Online (Sandbox Code Playgroud)

在哪里

#styles.css
.background {
  background-image: url(../images/background.jpg);
}
Run Code Online (Sandbox Code Playgroud)

日志(显然)显示

No route matches [GET] "/images/background.jpg"
Run Code Online (Sandbox Code Playgroud)

如何确保 Rails 知道 Yarn 包中的这些图像并正确编译它们?

这可能吗?还是我忽略了一些明显的东西?

ami*_*amb 0

我有同样的问题。以下是一些很好的参考

https://edgeguides.rubyonrails.org/webpacker.html#using-webpacker-for-css

https://github.com/rails/webpacker/issues/349

基本上你需要做以下事情

  1. 需要像 js 文件一样的 css 文件,但包含 css 扩展名/app/javascript/packs/application.js(是的,在 javascript 中需要 css)

  2. 添加<%= stylesheet_pack_tag "application" %> 布局文件(如果尚不存在)

  3. 如果您还没有它,请创建文件(即使是空的)/app/javascript/packs/application.scss