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

SvelteKit使用Static Adapter调用API预渲染失败求解决方案

SvelteKit静态站点调用API路由的正确做法?

当不尝试从API加载任何动态数据时,可以正常构建静态站点。但使用以下代码时出现问题:

//export const prerender = true;

export const load = async ({ fetch }) => {
    const res = await fetch(`/api/WeatherForecast/`);

    if(res.ok){
        const weatherForecasts = await res.json();
        return { weatherForecasts };
    }

    const { message } = await res.json();

    return {
        error: new Error(message)
    };
}

此时遇到错误,提示代码必须预渲染。于是取消注释开启预渲染:

export const prerender = true;

export const load = async ({ fetch }) => {
    const res = await fetch(`/api/WeatherForecast/`);

    if(res.ok){
        const weatherForecasts = await res.json();
        return { weatherForecasts };
    }

    const { message } = await res.json();

    return {
        error: new Error(message)
    };
}

开启预渲染后,页面出现JSON解析错误和500服务端错误。

我发现将Static适配器设置为非严格模式:

adapter: adapter({assets: 'build', pages: 'build', precompress: false, strict: false})

可以忽略HTTP错误完成构建,且站点运行时能正常调用API,但这种方式感觉不太妥当。

请问使用SvelteKit构建静态站点并让部分页面调用API路由获取数据的正确做法是什么?


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 08:47:23