O que é um static asset? Os arquivos que seu site serve
Um static asset é um arquivo servido ao navegador exatamente como armazenado, sem processamento por requisição: imagens, fontes, JavaScript, CSS e muito mais.
O conteúdo web se divide em dois tipos: respostas dinâmicas geradas por requisição, e static assets servidos como arquivos fixos. A maior parte do que um frontend entrega é estático: o JS e o CSS compilados, imagens, fontes e ícones. Como os static assets são apenas arquivos, eles fazem cache extremamente bem, e é o build que os prepara e adiciona o fingerprint para isso.
O que conta como um static asset
- Bundles de JavaScript e CSS compilados.
- Imagens, SVGs e ícones.
- Fontes e subconjuntos de fontes.
- O shell HTML e o web manifest.
Por que os static assets fazem cache bem
Um static asset não muda entre requisições, então pode receber cache agressivo na CDN e no navegador. Com content hashing, ele pode receber cache efetivamente para sempre, o que é a base de carregamentos repetidos rápidos.
Processamento em tempo de build
Embora sejam servidos como estão, os static assets muitas vezes são processados antes: imagens comprimidas, fontes com subset aplicado, JS e CSS minificados e com hash. O processamento acontece no build, então o arquivo servido já está otimizado.
Estático versus dinâmico
Um static asset é o mesmo para todos, enquanto uma resposta dinâmica é gerada por requisição ou por usuário. Quanto mais você conseguir servir de forma estática, mais barato e rápido fica o site, e é por isso que a geração estática é popular.
Static assets no CI/CD
O build produz os static assets otimizados e com hash, e o deploy faz upload deles para uma CDN ou host estático com os cache headers apropriados. A pasta de saída inteira é o artifact, e o pipeline é essencialmente uma máquina para transformar o código-fonte em arquivos estáticos prontos para deploy.
Principais conclusões
- Um static asset é servido como um arquivo fixo, sem processamento por requisição.
- Os static assets fazem cache de forma agressiva, especialmente quando têm content-hash.
- O CI os otimiza e adiciona hash, e então faz deploy da pasta para uma CDN.