I’m having trouble with my Nuxt application after deploying it to Vercel. My API routes keep returning 404 errors like “Cannot GET /api/users” when I try to access them. The deployment seems successful and there are no error messages in the Vercel logs, but all my API endpoints are unreachable. Local development works fine without any issues.
My vercel.json configuration:
{
"version": 2,
"rewrites": [
{ "source": "/api/(.*)", "destination": "/api" }
],
"builds": [
{
"src": "api/**/*.js",
"use": "@vercel/node"
},
{
"src": "nuxt.config.js",
"use": "@nuxtjs/vercel-builder",
"config": {
"serverFiles": ["api/**"]
}
}
]
}
nuxt.config.js setup:
// API middleware configuration
serverMiddleware:
process.env.NODE_ENV === 'production'
? []
: [
{ path: '/api', handler: '~/api/index' },
{ path: '/api/users', handler: '~/api/users' }
],
Sample API file (/api/users.js):
import express from 'express'
import bodyParser from 'body-parser'
const router = express()
router.use(bodyParser.json())
router.get('/', (request, response) => {
response.status(200).json({ message: 'users retrieved' }).end()
})
router.post('/', (request, response) => {
response.status(200).json({ message: 'user created' }).end()
})
export default router