Я новичок в рельсах, и я немного смущен тем, как загружаются активы. Я могу заставить все работать, но я хотел бы понять, что на самом деле происходит за кулисами.Объяснение использования активов Rails
Я читал документацию, но есть вещи, которые я не понимаю полностью.
файл манифеста
Первое, что меня смущает использование файлов манифеста.
Например, если в моем приложении/активы/JavaScripts/application.js файл у меня есть:
//= require_tree .
Rails документация говорит:
говорит Звездочка рекурсивно включать все файлы JavaScript в указанная директория на выходе
Что мне непонятно, какой каталог? приложение/активы/JavaScripts /?
Означает ли это, что если я добавлю файл в app/assets/javascripts/он будет загружен и обслуживаться?
Если добавить драгоценный камень, который требует, чтобы добавить файл example.js мне нужно добавить в файл манифеста:
//= require example.js
Но почему это необходимо, если //= require_tree
уже загружает и обрабатывает файлы в приложение/активы/javascripts /, где я разместил свой example.js? Хорошо, что позволяет мне указать порядок, если позже я добавлю больше требуемых. Но кроме этого?
HTML FILE
И тогда скрипт будет включен в application.html.erb
<%= javascript_include_tag ('application'), 'data-turbolinks-track' => true %>
Я понимаю, это загружает файл application.js упомянутый выше, и поэтому различные //= require
в нем ,
Иногда бывает, что требуется для сценария конкретного файла как:
<script src="js/example.js"></script>
ли этот сценарий не будет <script src="js/example.js"></script>
делать ту же самую вещь //= require example.js
?
PUBLIC VS APP АКТИВЫ
Я понимаю, что если поместить файл моего example.js на публике/папку активов не будет собраны, но подают отдельно. Зачем мне это делать? Разумно ли это сделать в случае, если файл некорректно передан при конкатенировании и компиляции и работает только в том случае, если его обслуживают отдельно? Другими словами, если я включаю файл .js в app/assest, и у него есть проблемы с загрузкой или разрывом вещей, стоит ли пытаться удалить его оттуда и перенести его в public/assets или это просто не имеет смысла?
APP АКТИВЫ VS VENDOR АКТИВЫ
На какой сценарий я должен добавить файл поставщика активов вместо приложения активов? В чем разница между добавлением его в другое место? И у моего поставщика/активов/javascripts у меня есть только пустой файл .keep. Таким образом, есть такая вещь, как файл манифеста на app/assets. Как тогда ссылаются файлы в этой папке?