Конвейер Rails не включает необходимые файлы в манифесте application.js
Конвейер ресурсов rails не включает файлы, требуемые в application.js.
Единственным файлом javascript, отображаемым в браузере, является application.js, а строки запроса не скомпилированы для включения тегов, как они должны быть:
// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
//
// It not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// the compiled file.
//
// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT TO BE PROCESSED, ANY BLANK LINE SHOULD
// GO AFTER THE REQUIRES BELOW.
//
//= require jquery
//= require jquery_ujs
//= require twitter/bootstrap
//= require bootstrap
//= require_tree .
;
в config/application.rb У меня есть config.assets.enable = true
Я использую rails 3.2.8, и я попытался использовать ruby 1.9.3-p398 и 2.0.0-p0, используя rvm.
Как я могу заставить application.js включить необходимые файлы?
EDIT: похоже, что блокировка по этому вопросу была недавно разблокирована, и активность увеличилась. Прошло некоторое время с тех пор, как я работал над этим, и код больше не существует. Если я правильно помню, я переустановил рубин и рельсы, и это устранило проблему.
Должен ли я закрыть этот вопрос? Какова надлежащая процедура в этой ситуации?
Ответы
Ответ 1
Я ответил на это здесь:
Rails 3.2.8 Application.js и Application.css не работают как expcted
Здесь текст:
У меня также была эта проблема, но с новыми версиями Rails и Рубин.
Изучив журнал, мне отдали javascript.js из кеша Rails так как сервер не видел изменений в файле. Я пошел и переехал требуют строк вокруг (всего один), чтобы сказать Rails, что есть изменения в файла и повторной компиляции/использования. Уэлм сделал это для меня!
Надеюсь, это поможет кому-то.
Еще один важный вывод - обновить драгоценный камень звездочек в Gemfile.
У меня была версия 2.2.1 и у меня были проблемы, после обновления до 2.2.2 она работала
gem 'sprockets', '2.2.2'
Ответ 2
Если вы обновляетесь с версии 3.0.x - 3.1.x и выполняете обновление до версии 3.2.x и можете решить эту проблему.
Недавно я обновил приложение с 3,0 до 3,12.12 и обнаружил, что манифест актива не будет работать с Ruby 1.9.3, Ruby 2.0 или Ruby 2.1.1. Затем я пошел вперед и обновился до 3.2.17, и все, кажется, работает правильно, используя Ruby 2.1.1.
Надеюсь, это поможет любому, кто может столкнуться с этой проблемой.
Ответ 3
Одной из распространенных причин этого является то, что активы компилируются и обнаруживаются в public/assets, и в этом случае Rails не будет перекомпилировать их. Если у вас есть активы здесь и не заданы для параметра config.serve_static_assets значение false, Rails не будет перекомпилировать ваши активы:
config.serve_static_assets = false
Итак, если у вас есть предварительно скомпилированный материал в public/assets, либо удалите их, либо добавьте вышеприведенную строку в development.rb
Ответ 4
Вы копировали/вставляли файлы начальной загрузки в папку поставщика/активов или в приложение/активы? Консоль активов включает в себя только папку app/assets по умолчанию, а не lib/assets или vendor/assets. Чтобы включить поставщика/активы в конвейер, введите эту команду в файл app/assets/javascript/application.js:
//= require_tree ../../../vendor/assets/javascripts/
Чтобы сделать то же самое для ваших файлов CSS:
*= require_tree ../../../vendor/assets/stylesheets/
Я знаю, что в комментариях в верхней части файла говорится, что все файлы в папках приложений, lib или поставщиков будут включены, но я обнаружил, что это не так. Я не могу объяснить, почему, но см. здесь для моего источника. Попробуйте приведенные выше команды или включите файлы начальной загрузки в папки приложений/активов. Надеюсь, что это поможет.