Как получить ресурсы в подпапках продавца в Rails? - PullRequest
0 голосов
/ 05 июня 2018

Мне нужно установить серию библиотек в моем приложении, храня их в соответствующих папках внутри /vendor/plugins/

Пример, библиотека ckeditor:

  • Основная папка в /vendor/plugins/ckeditor/
  • js файл в /vendor/plugins/ckeditor/js/Chart.js
  • css файл в /vendor/plugins/ckeditor/css/chart.min.css

Так что я могу импортировать в мой application.scss так:

*= require chart.min

А в моем application.js вот так:

//= require Chart.js

При попытке сделать это рельсы только получают доступ к папке /vendor/assets/plugins/ plugins, генерируя ошибку:

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

Как заставить проект сканировать все подпапки поставщика, пока не найдете файл, который я импортирую?

1 Ответ

0 голосов
/ 05 июня 2018

Сначала добавьте каталог /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

Однако добавление каталога в путь загрузки активов не означает, что Sprockets будет рекурсивно искать все подкаталоги.Также не очень хорошая идея настроить его для этого.

Вам все еще нужно указать полный путь от /vendor/plugins.

app / assets / javascripts / application.js:

//= require ckeditor/js/Chart

app / assets / stylesheets / application.css:

*= require ckeditor/css/chart.min

Или вы можете просто использовать гем интеграции Rails и пропустить все хлопоты.

...