Как получить ресурсы ckeditor для компиляции и загрузки в конвейер ресурсов Rails 3.1 - PullRequest
5 голосов
/ 26 января 2012

Я пытаюсь использовать CKEditor в приложении Rails 3.1. У меня есть каталог ckeditor в app / assets / javascripts / ckeditor /, с удаленными посторонними материалами, такими как несжатый и модульный источник.

Отлично работает в разработке. В производственных или промежуточных средах ckeditor не может найти свои собственные файлы: config.js, lang / en.js skins / kama / editor.css. Я вижу, что эти файлы не прекомпилируются, что имеет смысл, поскольку конвейер ресурсов по умолчанию не будет включать или прекомпилировать все, что соответствует /.css/ или /.js/.

В соответствии с документами rails и предыдущими ответами, такими как этот , добавление файлов, которые мне нужны для config.assets.precompile, должно быть решением. Однако, несмотря на огромные усилия, я не могу понять, какой формат я должен использовать с config.assets.precompile. Это не задокументировано и никаких примеров не приведено.

Я пытался явно добавить файлы по имени:

config.assets.precompile << ['config.js', 'en.js', 'editor.css']

Я пытался добавить регулярные выражения, которые будут соответствовать файлам:

config.assets.precompile << [ /.*config\.js/, /.*en.js/, /.*editor.css/ ]

Я пытался явно добавить полные пути:

config.assets.precompile << File.join(Rails.root, 'app', 'assets', 'javascripts', 'ckeditor', 'config.js')
(etc...)

Во всех этих случаях (и во всем остальном, что я пробовал), запуск ресурсов rake: прекомпиляция все еще не может переместить нужные мне файлы в public / assets. Все изображения и тому подобное, кроме трех файлов javascript и / или css, необходимых для запуска CKEditor.

Есть мысли?

Ответы [ 3 ]

2 голосов
/ 27 марта 2013

Я столкнулся с похожими проблемами.Я закончил тем, что использовал CKEditor без конвейера ресурсов:)

После нескольких попыток гемов ни одна из них не работала нормально в производственной среде.В итоге я положил ckeditor в папку public приложения.Это полностью пропускает процесс конвейера активов, и ckeditor прекрасно работает и на производстве.Никакой предварительной компиляции активов ...

Использование рельсов 3.1, CKEditor 4.1.Хотя это старый поток, возможно, это может кому-то помочь ...

Обновление: Кроме того, если вы тестируете в своей локальной производственной среде, не забудьте установить serve_static_assets в true в config/environments/production.rb

2 голосов
/ 29 сентября 2013

Для меня это было исправлено переопределением задачи прекомпиляции по умолчанию (я использовал Rails 4 и CkEditor 4).

  1. Добавить в application.rb config.assets.precompile += ['ckeditor/*']
  2. В application.js //= require ckeditor/init
  3. Создать файл lib/tasks/precompile_hook.rake и вставить текст из этого ответа Крюк прекомпиляции
1 голос
/ 27 января 2012

В вашем коде есть синтаксическая ошибка. Атрибут прекомпиляции является массивом.

Вы можете добавить один элемент в массив следующим образом:

config.assets.precompile << 'name_of_file.ext'

Если ваши значения находятся в массиве, вы должны ДОБАВИТЬ массив.

config.assets.precompile += [ /.*config\.js/, /.*en.js/, /.*editor.css/ ]

Если вы добавите, то у вас будет массив, вложенный в массив прекомпиляции, который игнорируется.

...