Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O Fabric Apps inclui um serviço de alojamento de conteúdos estáticos que constrói, empacota e serve a sua aplicação frontend juntamente com as APIs backend. Quando o alojamento estático está ativado, a CLI implementa os seus ativos construídos no Fabric e fornece uma URL pública onde os utilizadores podem aceder à sua aplicação.
Pré-requisitos
- Um projeto Fabric Apps com uma aplicação frontend (por exemplo, React, Vue ou o TypeScript padrão).
- Um comando build que produz saída estática (por exemplo,
npm run build).
Como funciona o alojamento estático
Quando implementas com alojamento estático ativado, a CLI executa estes passos:
- Executa o comando de build configurado (por exemplo,
npm run build). - Valida que a pasta de saída existe e contém ficheiros.
- Empacota todos os ficheiros num arquivo ZIP comprimido (máximo 100 MB).
- Carrega o arquivo para o anfitrião do Fabric Apps.
- Devolve uma URL de alojamento público onde a sua aplicação está acessível.
Configurar alojamento estático
Adicione uma staticHosting secção sob services no seu ficheiro rayfin/rayfin.yml:
services:
staticHosting:
enabled: true
folder: dist
buildCommand: npm run build
indexDocument: index.html
Opções de configuração
| Opção | Obrigatório | Predefinição | Description |
|---|---|---|---|
enabled |
Yes | — | Defina como true para ativar o alojamento estático. |
folder |
Yes | — | Pasta de saída contendo ficheiros estáticos construídos, relativamente a root. |
root |
No | Raiz do projeto | Diretório raiz do projeto frontend, em relação à raiz do projeto. |
buildCommand |
No | — | Comando shell para executar antes de empacotar (por exemplo, npm run build). |
indexDocument |
No | — | Documento predefinido a apresentar para pedidos ao diretório (por exemplo, index.html). |
Exemplo com um diretório frontend separado
Se o seu código frontend está num subdiretório:
services:
staticHosting:
enabled: true
root: frontend
folder: dist
buildCommand: npm run build
indexDocument: index.html
Esta configuração resolve o caminho de saída para <project-root>/frontend/dist.
Implementação de conteúdo estático
Implantação completa
Quando executa npx rayfin up, o conteúdo estático é implementado automaticamente como parte da implementação full stack:
npx rayfin up
A CLI constrói o teu frontend, empacota a saída e carrega-a juntamente com a configuração do backend. Após a implementação, a CLI imprime a URL de alojamento e grava-a no seu .env.fabric-* ficheiro como VITE_RAYFIN_HOSTING_URL.
Implementação estática autónoma
Use o staticapp deploy subcomando para redistribuir apenas o seu conteúdo estático sem repetir a implementação completa:
npx rayfin up staticapp deploy
Este comando é útil quando só mudaste o código do frontend e queres um ciclo de iteração mais rápido.
Salta a etapa de construção
Se já construiu o seu frontend e quer implementar a saída existente sem reconstruir:
npx rayfin up staticapp deploy --skip-build
Ativar registo detalhado
Mostrar resultados detalhados durante a implantação:
npx rayfin up staticapp deploy --verbose
Configuração da chamada de retorno de autenticação
Quando tanto o alojamento estático como a autenticação estão ativados, o CLI Rayfin regista automaticamente um URI de retorno de autenticação com base no URL do seu alojamento.
Por exemplo, se o seu URL de alojamento for https://example.webapp.com, a CLI adiciona este URI de callback:
services:
auth:
allowedRedirectUris:
- http://localhost:5173
- http://localhost:5173/auth/callback
- https://example.webapp.com/auth/callback
Não precisa de configurar manualmente o URI de callback de autenticação — a CLI atualiza a configuração e envia-a durante a implementação.
Limites de tamanho de implantação
- O arquivo ZIP comprimido não deve exceder 100 MB.
- A CLI utiliza compressão máxima para minimizar o tamanho de upload.
- Se o resultado da compilação exceder o limite, otimize os seus recursos da seguinte forma:
- Excluindo os mapas de origem das builds de produção.
- Comprimir ou remover imagens e vídeos grandes.
- Mover ficheiros binários para o armazenamento do Fabric Apps em vez de os agrupar.
Exemplo completo
Uma configuração completa rayfin.yml com alojamento estático, autenticação e serviços de dados ativados:
id: my-app
name: my-app
version: 1.0.0
services:
auth:
enabled: true
allowedRedirectUris:
- http://localhost:5173
- http://localhost:5173/auth/callback
fabric:
enabled: true
data:
enabled: true
dialect: mssql
staticHosting:
enabled: true
folder: dist
buildCommand: npm run build
indexDocument: index.html
Testar localmente
Antes de implementar, verifica se a tua build estática funciona localmente:
Construa o seu frontend:
npm run buildVerifique se a pasta de saída contém os ficheiros esperados:
ls distServir os ficheiros compilados com um servidor estático local:
npx serve distAbra o URL impresso pelo servidor e verifique se a sua aplicação carrega corretamente.
Solucionar problemas de implantação
Pasta estática não encontrada
Se a CLI reportar que a pasta estática não existe:
- Verifica se o
foldercaminho emrayfin.ymlestá correto e relativo aroot(ou a raiz do projeto serootnão estiver definido). - Assegura-te de que o teu comando build correu com sucesso e produziu a saída no diretório esperado.
Pasta estática vazia
Uma pasta de saída vazia normalmente significa que o comando de compilação falhou ou não produziu saída. Execute manualmente o comando build para verificar erros:
npm run build
A implementação excede o limite de tamanho
Se o ZIP exceder 100 MB:
- Reveja o resultado da compilação para detetar ficheiros desnecessários (mapas de origem, recursos de desenvolvimento).
- Configura o teu bundler para excluir os mapas de origem em builds de produção.
- Mover ficheiros binários grandes para o armazenamento do Fabric Apps.
Nenhum endpoint remoto está configurado
O npx rayfin up staticapp deploy comando requer uma implantação remota já existente. Executa npx rayfin up primeiro para configurar o endpoint remoto e depois usa staticapp deploy para as atualizações seguintes.