为什么sprockets在我的vendor文件夹中找不到资产,即使它在加载路径中?

时间:2016-10-29 18:23:25

标签: ruby-on-rails asset-pipeline ruby-on-rails-5 sprockets

这是文件&我试图在application.scss中添加文件夹:

$ ls
jquery.nouislider.css
$ pwd
myapp/vendor/assets/stylesheets/inspinia/plugins/nouslider

我这样包括它:

@import "inspinia/plugins/nouslider/*";

这是我得到的错误:

Sprockets::FileNotFound - couldn't find file '/app/assets/stylesheets/inspinia/plugins/nouslider'
Checked in these paths: 
  /app/assets/config
  /app/assets/fonts
  /app/assets/images
  /app/assets/javascripts
  /app/assets/stylesheets
  /vendor/assets/javascripts
  /vendor/assets/stylesheets

如何在不抛出错误的情况下正确包含此文件夹?

修改1

奇怪的是我有这两个文件:

$ ls
animate.css patterns    plugins     style.css
$ pwd
/vendor/assets/stylesheets/inspinia

我成功地将其包括在内:

 @import "inspinia/style";
 @import "inspinia/animate";

所以不确定为什么以上不起作用。

修改2

我终于让它运转了,有点儿。

我所做的是将我想要的文件移到/inspinia文件夹,然后从jquery.nouislider.css重命名,并将其重命名为nouislider.css

然后我就这样导入了它:

@import "inspinia/nouislider";

这有效,但我不知道为什么普通路径和较长的文件名不起作用。

2 个答案:

答案 0 :(得分:0)

您应该包含完整路径,然后重试 供应商/资产/样式表/ inspinia /因为它是测试或使用需要或加载而不是导入

答案 1 :(得分:0)

我遇到了同样的问题,并找到了一种更好的导入glob的方法。 @import仅适用于相对路径。因此,您可以像这样使用smth:

@import "../../../vendor/assets/stylesheets/inspinia/**/*";

引用glob-imports doc