Код js подключается 2 раза в application.js и в своем файле(?

app
..assets
....javascripts
......application.js
......somecode.js
app/assets/javascripts/application.js
//=require somecode
/app/views/layouts/application.html.haml
= javascript_include_tag 'application'
на выходе в public/assets ожидаю application.js, а получаю application.js и somecode.js. И на в коде страницы вижу:

<script src="/assets/somecode-3b9fe45f9d9a8007fa4c213cfbced5fd.js?body=1"></script>
<script src="/assets/application-3b9fe45f9d9a8007fa4c213cfbced5fd.js?body=1"></script>


Т.е. код подключился 2 раза. Это неожиданное поведение напрягает.
Задача такая: в папке javascripts сырцов ассетов собрать все нужные скрипты. Подключить их в одном application.js и собрать в один файл на выходе компиляции ресурсов.
  • Вопрос задан
  • 284 просмотра
Решения вопроса 1
POS_troi
@POS_troi
СадоМазо Админ, флудер, троль.
В дополнение к vsuhachev

/config/environments/development.rb

config.assets.debug = true

заменить на

config.assets.debug = false

Если желаете в девелоп окружении иметь то что желаете :)

P.S. //=require somecode не обязательно если файл находится в /app/assets и в application.js есть строка //= require_tree .
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@vsuhachev
во первых имеет значение в каком вы окружении, в development такое поведение нормально, а ассеты для production собираются с помощью задачи assets:precompile

во вторых, по умолчанию в манифесте (application.js) обычно есть команда require_tree, которая включает все файлы из подкаталогов, т.е. require somecode не нужен

почитайте вот тут как это все работает
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы