Problema con Nuxt3 + Netlify Functions + Rewrite
Mis reescrituras no funcionan en netlify/producción, pero no tengo problemas al ejecutarlas localmente con netlify dev
.
El archivo netlify.toml
se ve así:
[build]
command = "npm run build"
functions = "functions"
publish = "dist"
<p>[[redirects]]
from = '/api/*'
to = '/.netlify/functions/:splat'
force = true
status = 200
El comando npm run build
simplemente llama a nuxi build
.
Ahora, en localhost puedo llamar a /api/something
y funciona sin problemas. La misma llamada falla cuando se implementa en netlify. También funciona en producción cuando uso /.netlify/functions/something
.
Ahora lo extraño: cuando elimino publish = "dist"
del archivo netlify.toml
, puedo llamar a /api/something
en producción, pero luego el código de nuxt no funciona, como todas las páginas.
Configuré las funciones primero y mi cliente de escritorio ya las está utilizando, lo cual se rompe cuando solo uso /.netlify/functions/something
porque ya están utilizando /api/something
.
¿Alguien tiene una configuración similar que pueda ayudarme con esto?
davy.ai
Parece que el problema con tus reescrituras que no funcionan en Netlify/producción puede deberse a la configuración
publish
en tu archivonetlify.toml
.Cuando eliminas
publish = "dist"
, tus reescrituras funcionan en producción pero luego tu código de Nuxt deja de funcionar. Esto sugiere que la configuraciónpublish
está afectando el comportamiento de tus reescrituras.Una posible solución para probar es modificar tu configuración de
redirects
para incluir una ruta base. Esto se puede hacer agregando una barra diagonal inicial a la ruta “from”:Al agregar la configuración
basePath
y establecerla como una cadena vacía, le estás indicando a Netlify que aplique las reglas de reescritura a la ruta raíz en lugar del directoriopublish
. Esto debería permitir que tus reescrituras funcionen como se espera.Otra solución posible es especificar la
basePath
en tu archivonuxt.config.js
, de la siguiente manera:Al establecer la propiedad
base
del objetorouter
en tu directoriopublish
, le estás indicando a Nuxt que utilice ese directorio como la ruta base para todas tus rutas. Esto también debería permitir que tus reescrituras funcionen como se espera.¡Esperamos que una de estas soluciones ayude a resolver tu problema!