Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Fabric Apps incluye un servicio de hospedaje de contenido estático que compila, empaqueta y sirve la aplicación de front-end junto con las API de back-end. Cuando el alojamiento estático está habilitado, la CLI despliega tus activos construidos en Fabric y proporciona una URL de alojamiento. Puedes exigir a los usuarios que inicien sesión y tengan permiso para ver la app de Fabric, o puedes permitir el acceso anónimo a los recursos alojados.
Prerequisites
- Un proyecto de Fabric Apps con una aplicación de front-end (por ejemplo, React, Vue o Vanilla TypeScript).
- Comando de compilación que genera una salida estática (por ejemplo,
npm run build).
Funcionamiento del hospedaje estático
Al implementar con el hospedaje estático habilitado, la CLI realiza estos pasos:
- Ejecuta el comando de compilación configurado (por ejemplo,
npm run build). - Valida que la carpeta de salida existe y contiene archivos.
- Empaqueta todos los archivos en un archivo ZIP comprimido (máximo de 100 MB).
- Carga el archivo en el host de Fabric Apps.
- Aplica la configuración de acceso configurado y devuelve una URL de alojamiento.
Configuración del hospedaje estático
Añada una sección staticHosting debajo de services en su archivo rayfin/rayfin.yml:
services:
staticHosting:
enabled: true
folder: dist
buildCommand: npm run build
indexDocument: index.html
assetAccess: protected
Opciones de configuración
| Opción | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|
enabled |
Sí | — | Establézcalo en true para habilitar el hospedaje estático. |
folder |
Sí | — | Carpeta de salida que contiene los archivos estáticos generados, relativa a root. |
root |
No | raíz del proyecto | Directorio raíz del proyecto de front-end, en relación con la raíz del proyecto. |
buildCommand |
No | — | Comando shell que se ejecutará antes del empaquetado (por ejemplo, npm run build). |
indexDocument |
No | — | Documento predeterminado para atender solicitudes de directorio (por ejemplo, index.html). |
assetAccess |
No |
protected para despliegues no interactivos |
Controla el acceso a los activos alojados. Usa protected para exigir iniciar sesión y tener permiso para ver la aplicación Fabric, o public para permitir el acceso anónimo. |
Configurar el acceso a los activos alojados
Establece assetAccess en uno de estos valores:
-
protected- Requiere que los usuarios inicien sesión y tengan permiso para ver la aplicación Fabric antes de poder recuperar los activos alojados. -
public- Permite a cualquier persona con la URL de alojamiento recuperar los activos alojados sin iniciar sesión.
El alojamiento protegido controla el acceso a los archivos estáticos que sirve Fabric Apps. No reemplaza la autenticación y la autorización en tu aplicación ni en tus APIs.
El primer despliegue interactivo npx rayfin up te pide que elijas una configuración de acceso si assetAccess no está configurada. Los despliegues no interactivos usan protected y guardan esa configuración en rayfin.yml.
Para cambiar la configuración de acceso tras el despliegue, actualiza assetAccess, y luego ejecuta un despliegue completo:
npx rayfin up
El npx rayfin up staticapp deploy comando solo actualiza el contenido. No aplica ningún valor nuevo assetAccess.
Ejemplo con un directorio de front-end independiente
Si el código de front-end reside en un subdirectorio:
services:
staticHosting:
enabled: true
root: frontend
folder: dist
buildCommand: npm run build
indexDocument: index.html
assetAccess: protected
Esta configuración convierte la ruta de salida en <project-root>/frontend/dist.
Implementación de contenido estático
Implementación completa
Al ejecutar npx rayfin up, el contenido estático se implementa automáticamente como parte de la implementación de pila completa:
npx rayfin up
La CLI compila el front-end, empaqueta la salida y la carga junto con la configuración de back-end. Después de la implementación, la CLI imprime la dirección URL de hospedaje y la escribe en el .env.fabric-* archivo como VITE_RAYFIN_HOSTING_URL.
Implementación estática independiente
Use el staticapp deploy subcomando para volver a implementar el contenido estático sin volver a ejecutar la implementación completa:
npx rayfin up staticapp deploy
Este comando es útil cuando solo se cambia el código de front-end y se desea un ciclo de iteración más rápido.
Omitir el paso de compilación
Si ya ha creado el front-end y desea implementar la salida existente sin volver a generar:
npx rayfin up staticapp deploy --skip-build
Habilitación del registro detallado
Mostrar la salida detallada durante la implementación:
npx rayfin up staticapp deploy --verbose
Configuración de devolución de llamada de autenticación
Cuando están habilitados tanto el alojamiento estático como la autenticación, la CLI de Rayfin registra automáticamente un URI de callback de autenticación a partir de la URL de alojamiento.
Por ejemplo, si la URL de alojamiento es https://example.webapp.com, la CLI añade este URI de devolución de llamada:
services:
auth:
allowedRedirectUris:
- http://localhost:5173
- http://localhost:5173/auth/callback
- https://example.webapp.com/auth/callback
No es necesario configurar manualmente el URI de devolución de llamada de autenticación: la CLI actualiza la configuración y la envía durante la implementación.
Límites de tamaño de implementación
- El archivo ZIP comprimido no debe superar los 100 MB.
- La CLI usa la compresión máxima para minimizar el tamaño de carga.
- Si la salida de compilación supera el límite, optimice los recursos mediante:
- Excluir los mapas de origen de las compilaciones de producción.
- Compresión o eliminación de imágenes y vídeos grandes.
- Mover archivos binarios al almacenamiento de Fabric Apps en lugar de agruparlos.
Ejemplo completo
Una configuración completa rayfin.yml con el hospedaje estático, la autenticación y los servicios de datos habilitados:
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
assetAccess: protected
Realiza una prueba local
Antes de la implementación, compruebe que la compilación estática funciona localmente:
Compile el front-end:
npm run buildCompruebe que la carpeta de salida contiene los archivos esperados:
ls distSirva los archivos generados con un servidor estático local:
npx serve distAbra la dirección URL impresa por el servidor y compruebe que la aplicación se carga correctamente.
Solución de problemas de implementación
No se encontró la carpeta estática
Si la CLI informa de que la carpeta estática no existe:
- Compruebe que la ruta de acceso
folderenrayfin.ymles correcta y relativa aroot(o a la raíz del proyecto si no se ha establecidoroot). - Asegúrese de que el comando de compilación se ejecutó correctamente y generó la salida en el directorio esperado.
Carpeta estática vacía
Normalmente, una carpeta de salida vacía significa que se produjo un error en el comando de compilación o no se produjo la salida. Ejecute el comando de compilación manualmente para comprobar si hay errores:
npm run build
La implementación supera el límite de tamaño
Si el archivo ZIP supera los 100 MB:
- Revise la salida de la compilación en busca de archivos innecesarios (mapas de código fuente, recursos de desarrollo).
- Configura el empaquetador para excluir los source maps en las compilaciones de producción.
- Mueva archivos binarios grandes a Fabric Apps Storage.
No hay ningún punto de conexión remoto configurado
El npx rayfin up staticapp deploy comando requiere una implementación remota existente. Ejecute npx rayfin up primero para configurar el punto de conexión remoto y, a continuación, use staticapp deploy para las actualizaciones posteriores.