Аспирация предварительной компиляции для файла манифеста подкаталерирования
-
25-10-2019 - |
Вопрос
Я использую Rails 3.1 и под активами у меня есть файлы, подобные этим:
assets
javascripts
admin
admin.js
a1.js
client
client.js
c1.js
admin.js выглядит так
//
//= require jquery
//= require jquery_ujs
//= require a1
client.js выглядит так
//
//= require jquery
//= require c1
Все отлично работает в режиме разработки. Когда я занимаюсь граблями активов: предварительно, тогда я не вижу никаких файлов JavaScript в публике/активах. Я вижу все таблицы стилей на публике/активах.
Я думаю, что это связано с тем фактом, что манифестные файлы (admin.js и client.js) в этом случае находятся в подкаталорике.
Так верно ли это, что грабные активы: Precompile не изучает подкатарии?
Любые предложения о том, как это исправить. Я предпочитаю, чтобы файлы были так, как я выложил, потому что у меня есть куча файлов JavaScript.
Решение
В конфигурации Rails есть массив, который устанавливает, какие файлы предварительно надком. Application.js и Application.css в Любые каталог.
Вам нужно будет добавить свои файлы в массив Precompile:
config.assets.precompile += ['admin/admin.js', 'client/client.js']
И они должны быть доступны через:
javascript_include_tag "admin/admin.js"
а также
javascript_include_tag "client/client.js"
Другие советы
На Rails 3.2.6, когда управление активами JavaScript в поддирах вы можете назвать манифест для каждого поддира «index.js» (в отличие от OP Admin.js 'и' client.js '), а затем в конфигурации/средах /production.rb скажем:
config.assets.precompile += ['admin.js', 'client.js']
Магия за кулисами будет смотреть в поддир администратора и компилировать в соответствии со спецификациями в index.js, выводящих в admin.js; Точно так же для клиента.
Затем активы будут доступны через:
javascript_include_tag 'admin'