O que app/assets/ guarda neste projeto
Duas linhas em toda página que esta app renderiza
O layout deste projeto, app/views/layouts/application.html.erb, tem estas três linhas no <head>:
<%= stylesheet_link_tag "tailwind", "data-turbo-track": "reload" %> <%# linha 45 %>
<%= stylesheet_link_tag "lexxy", "data-turbo-track": "reload" %> <%# linha 46 %>
<%= javascript_importmap_tags %> <%# linha 47 %>
A do meio carrega o lexxy, uma folha de estilo que vem dentro de uma gem, então não mora em app/assets/. As páginas de aula com desafio de código também acrescentam o xterm.css de um CDN, fora do pipeline de assets desta app. Uma app real costuma carregar CSS de mais de um lugar.
Este curso trata da primeira e da última linha. Uma traz CSS, a outra JavaScript. Parecem irmãs, mas apontam para duas pastas diferentes, cuidadas por dois mecanismos diferentes. Confundir as duas pode custar uma tarde de debug a quem está começando.
De um relance a um olhar de perto
O tour por app/ do curso Rails CLI: rails new citou app/assets/ de passagem: "stylesheets and images". Está certo, mas é breve. Este curso abre a pasta usando os arquivos deste projeto. Uma app Rails padrão guarda o CSS em app/assets/stylesheets/application.css, e este projeto não tem esse arquivo. A aula 2 mostra o que ficou no lugar dele.
O que há em app/assets/
app/assets/
├── builds/
│ ├── .keep
│ ├── tailwind/
│ └── tailwind.css (gerado, veja a aula 3)
├── images/
│ └── .keep
└── tailwind/
└── application.css
Três pastas, cada uma com um trabalho. tailwind/ guarda o arquivo fonte que o desenvolvedor edita. builds/ guarda o que é gerado a partir dele para o navegador; o tailwind.css só aparece depois do primeiro build. images/ guarda arquivos de imagem como estão, sem etapa de geração. As aulas 2 a 4 tratam de uma por vez.
O que este curso cobre
app/assets/tailwind/application.css, o arquivo de onde partem os estilos deste projeto.- Como esse arquivo vira
app/assets/builds/tailwind.css, o arquivo que o navegador baixa. app/assets/images/, e como o Propshaft evita que o navegador mostre um arquivo antigo do cache.- Onde
app/assets/termina eapp/javascript/começa, e por quê. - Rodar o pipeline neste projeto e conferir o que ele faz.
- Um fechamento, e onde o próximo curso, Bundler e Gemfile, continua.
No fim, dá para seguir o stylesheet_link_tag "tailwind", arquivo por arquivo, até o que ele carrega.
Continue com a aula 2
app/assets/tailwind/application.css: o ponto de entrada do CSS
Lê o ponto de entrada do Tailwind, onde o @import traz utilitários e o @theme define os tokens de design.
Com uma conta grátis você também tem os quizzes, seu progresso e suas anotações, e a discussão.