Подтвердить что ты не робот

Конвейер 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: похоже, что блокировка по этому вопросу была недавно разблокирована, и активность увеличилась. Прошло некоторое время с тех пор, как я работал над этим, и код больше не существует. Если я правильно помню, я переустановил рубин и рельсы, и это устранило проблему.

Должен ли я закрыть этот вопрос? Какова надлежащая процедура в этой ситуации?

4b9b3361

Ответ 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 или поставщиков будут включены, но я обнаружил, что это не так. Я не могу объяснить, почему, но см. здесь для моего источника. Попробуйте приведенные выше команды или включите файлы начальной загрузки в папки приложений/активов. Надеюсь, что это поможет.