Код 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 и собрать в один файл на выходе компиляции ресурсов.
  • Вопрос задан
  • 283 просмотра
Решения вопроса 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 не нужен

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

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

Войти через центр авторизации
Похожие вопросы