You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nuxt3开启SSR模式调用Netlify函数出现404错误,求排查方案

问题

我使用Nuxt3开发了一款应用并部署在Netlify平台,同时集成了Netlify Functions。当设置ssr: false时,所有功能运行正常;但启用默认的ssr: true选项后,通过$fetch调用Netlify函数时出现如下404错误:

[nitro] [unhandledRejection] FetchError: [GET] "/.netlify/functions/customFunction1": 404 Page not found: /.netlify/functions/customFunction1

当前的nuxt.config.js配置如下:
nuxt.config.js

export default defineNuxtConfig({
  devtools: { enabled: true },

  runtimeConfig: {
    public: {
      gtagId: 'XXXXXX',
    },
    app: {
      "baseURL": "/",
    }
  },


  modules: ["@nuxtjs/i18n", "@pinia/nuxt"],

  i18n: {
    vueI18n: "./i18n.config.js",
  },

  css: [
    "vuetify/lib/styles/main.sass",
    "@mdi/font/css/materialdesignicons.min.css",
    "@/assets/style/main.scss",
  ],

  build: {
    transpile: ["vuetify"],
  },

  alias: {
    pinia: "/node_modules/@pinia/nuxt/node_modules/pinia/dist/pinia.mjs"
  }

});
可能的问题根源及缺失配置
  • Nitro路由未代理Netlify Functions路径
    SSR模式下,Nuxt3的Nitro服务器会接管所有请求,默认不会将/.netlify/functions/路径转发到Netlify的函数服务。需要在nuxt.config.js中添加Nitro路由规则,手动代理该路径:
export default defineNuxtConfig({
  // 保留原有配置...
  nitro: {
    routeRules: {
      '/.netlify/functions/**': { proxy: 'https://<你的Netlify站点域名>/.netlify/functions/**' }
    }
  }
})

本地开发时,建议配合Netlify CLI启动项目,确保路径自动映射正确。

  • 服务端请求未使用完整函数端点
    SSR时,服务端发起的$fetch请求是指向Nitro服务器本身,而非Netlify函数服务。需要在runtimeConfig中配置函数的完整基础URL,避免使用相对路径:
export default defineNuxtConfig({
  runtimeConfig: {
    netlifyFunctionsBaseUrl: process.env.NETLIFY_FUNCTIONS_BASE_URL || 'https://<你的Netlify站点域名>/.netlify/functions',
    public: {
      gtagId: 'XXXXXX',
    },
    app: {
      "baseURL": "/",
    }
  },
  // 其他原有配置...
})

调用函数时改用完整URL:

const { netlifyFunctionsBaseUrl } = useRuntimeConfig()
const response = await $fetch(`${netlifyFunctionsBaseUrl}/customFunction1`)
  • Netlify部署配置缺失SSR适配
    Netlify部署Nuxt3 SSR应用需要正确的netlify.toml配置,确保构建和路由规则正确。检查项目根目录是否有该文件,内容需包含:
[build]
  command = "npm run build"
  publish = ".output/public"
  functions = ".output/server/functions"

[[redirects]]
  from = "/*"
  to = "/.netlify/functions/server"
  status = 200

缺少该配置会导致Netlify无法正确处理SSR请求,函数路径被Nitro拦截返回404。

  • 函数文件位置不符合Netlify要求
    Netlify Functions默认读取netlify/functions目录下的函数,或通过netlify.toml的functions字段指定路径。如果你的函数放在其他位置,需确保配置中正确指定路径,否则Netlify不会部署这些函数,自然返回404。

内容的提问来源于stack exchange,提问作者Cesar Bhering

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 21:05:08