public/ na raiz do seu app contém arquivos estáticos — imagens, ícones, fontes ou quaisquer outros recursos de que seu app precisa em tempo de execução. Esses arquivos são incluídos automaticamente nas compilações, sincronizados durante o modo de desenvolvimento e enviados para o servidor.
Arquivos colocados em public/ são:
- Publicamente acessíveis — depois de sincronizados com o servidor, os recursos são servidos em uma URL pública. Não é necessária autenticação para acessá-los.
- Disponíveis em componentes de front-end — use URLs de recursos para exibir imagens, ícones ou qualquer mídia dentro de seus componentes React.
- Disponíveis em funções lógicas — referencie URLs de recursos em e-mails, respostas de API ou qualquer lógica no lado do servidor.
- Usados para metadados do marketplace — os campos
logoUrlescreenshotsemdefineApplication()referenciam arquivos desta pasta (por exemplo,public/logo.png). Eles são exibidos no marketplace quando seu app é publicado. - Sincronizados automaticamente no modo de desenvolvimento — quando você adiciona, atualiza ou exclui um arquivo em
public/, ele é sincronizado automaticamente com o servidor. Não é necessário reiniciar. - Incluídos nas compilações —
yarn twenty dev:buildagrupa todos os recursos públicos na saída de distribuição.
Acessando recursos públicos com getPublicAssetUrl
Use o helper getPublicAssetUrl de twenty-sdk para obter a URL completa de um arquivo no seu diretório public/. Funciona tanto em funções lógicas quanto em componentes de front-end.
Em uma função lógica:
src/logic-functions/send-invoice.ts
src/front-components/company-card.tsx
path é relativo à pasta public/ do seu app. Tanto getPublicAssetUrl('logo.png') quanto getPublicAssetUrl('public/logo.png') resolvem para a mesma URL — o prefixo public/ é removido automaticamente, se presente.