Ruby on rails 如何在Rails中获取供应商子文件夹中的资产?

Ruby on rails 如何在Rails中获取供应商子文件夹中的资产?,ruby-on-rails,ruby,asset-pipeline,vendor,Ruby On Rails,Ruby,Asset Pipeline,Vendor,我需要在我的应用程序中安装一系列lib,将它们保存在/vendor/plugins/ 例如,ckeditor库: /vendor/plugins/ckeditor/ js文件位于/vendor/plugins/ckeditor/js/Chart.js css文件位于/vendor/plugins/ckeditor/css/chart.min.css 这样我就可以像这样导入到application.scs中: *= require chart.min //= require Chart.js

我需要在我的应用程序中安装一系列lib,将它们保存在
/vendor/plugins/

例如,ckeditor库:

  • /vendor/plugins/ckeditor/
  • js文件位于
    /vendor/plugins/ckeditor/js/Chart.js
  • css文件位于
    /vendor/plugins/ckeditor/css/chart.min.css
这样我就可以像这样导入到application.scs中:

*= require chart.min
//= require Chart.js
在my application.js中,如下所示:

*= require chart.min
//= require Chart.js
当我尝试执行此操作时,rails仅访问文件夹
/vendor/assets/plugins/
plugins,生成错误:

could not find file 'chart.min' with type 'text/css'

如何让项目扫描所有供应商的子文件夹,直到找到我要导入的文件?

首先将
/vendor/plugins
目录添加到资产加载路径:

module MyApp
  class Application < Rails::Application
    config.assets.paths << Rails.root.join("vendor", "plugins")
    # Settings in config/environments/* take precedence over those specified here.
    # Application configuration should go into files in config/initializers
    # -- all .rb files in that directory are automatically loaded.
  end
end
app/assets/stylesheets/application.css:

*= require ckeditor/css/chart.min

或者你可以直接使用并跳过所有的麻烦。

我将它添加到了我的初始值设定项/assets.rb中,但没有成功:Rails.application.config.assets.paths+=Dir[“{Rails.root}/vendor/plugins/*]”。按{Dir-Dir.size}排序,这样我就可以去掉
plugins
目录。减少配置通常是一件好事。我将plugins文件夹放在vendor/assets/中,然后可以跳过“config.assets.path”代码。我一直在为文件路径而挣扎,而您用它钉住了。谢谢使用gemforckeditor会更容易,问题是我需要安装15个libs的特定版本来集成一个html管理仪表板,所以如果我使用软件包附带的文件,会更容易。这就是为什么我需要插件的文件夹。