Аспирация предварительной компиляции для файла манифеста подкаталерирования

StackOverflow https://stackoverflow.com/questions/8305585

  •  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'
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top