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

SvelteKit动态路由页面刷新报404错误咨询(Firebase部署场景)

解决方案

步骤1:修改SvelteKit静态适配器配置

你当前svelte.config.js中的fallback参数设为了null,不会生成SPA兜底页面,动态路径请求无法被静态托管正确响应,修改配置如下:

import adapter from '@sveltejs/adapter-static';

export default {
    kit: {
        adapter: adapter({
            pages: 'build',
            assets: 'build',
            fallback: '200.html' // 替换原有null值,生成SPA兜底页面
        }),
    }
};

fallback参数会让构建工具生成一个统一的兜底HTML文件,所有未匹配到静态资源的请求都会返回该文件,由客户端SvelteKit路由接管处理动态内容。

步骤2:配置Firebase Hosting重写规则

在项目根目录的firebase.json文件中,修改hosting配置段,添加全局重写规则,将所有路径请求指向我们生成的兜底页面:

{
  "hosting": {
    "public": "build",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [
      {
        "source": "**",
        "destination": "/200.html"
      }
    ]
  }
}

如果你将fallback设置为index.html,把上述destination改为/index.html即可。

步骤3:调整页面配置并重新部署

你当前[id].svelte中设置了export const hydrate = false,该配置会关闭客户端注水,导致页面加载后客户端无法接管路由处理动态内容,需要删除该行配置。

完成所有配置修改后,重新执行构建和部署命令即可生效:

npm run build
firebase deploy

可选优化

如果你需要兼顾SEO需求,不想使用纯SPA兜底方案,可以更换为@sveltejs/adapter-firebase适配器,搭配Firebase Functions实现服务端渲染,动态生成页面内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 05:27:03