Стили создаются приложением Rails по требованию, поэтому теоретически вам не нужно ничего делать вручную.
Выполнение команды bin/rake assets:precompile компилирует их заранее, что может быть полезно, если вы хотите создать оптимизированный образ Docker для развёртывания на нескольких хостах.
Ассеты, компилируемые по требованию (например, таблицы стилей, JavaScript темы, SVG-спрайты), не загружаются в S3. Они запрашиваются непосредственно из приложения (или через CDN_URL, если он настроен).
Статические элементы, такие как JS ядра/плагинов и локали, генерируются с помощью assets:precompile и гарантированно никогда не изменяются во время выполнения.
Понятно; это объясняет, почему некоторые ресурсы обслуживаются приложением. Если запущено несколько контейнеров (например, за балансировщиком нагрузки), каждый из них будет генерировать их по требованию.
Да, точно. Эти данные также часто кэшируются в PostgreSQL/Redis, поэтому их нужно генерировать только в первом контейнере приложения, получившем запрос. Остальные контейнеры могут затем недорого получить скомпилированную версию из Redis/PostgreSQL и записать её в файловую систему.
И если есть CDN, то, полагаю, им даже это может не понадобиться.
Я работаю с кем-то, у кого, кажется, есть проблема с загрузкой некоторых ресурсов (некоторые иконки отображаются очень большими), и я ищу какое-либо объяснение.