SvelteKit 静态网站中的三层数据时效性

发布日期:2026-03-24 10:21:15   浏览量 :1
发布日期:2026-03-24 10:21:15  
1

你好!

静态网站托管速度快且成本低,但一旦部署,你的数据就会立即过时。本文展示了如何让一个使用 SvelteKit 构建的作品集网站,在仍以静态 HTML 形式部署到 GitHub Pages 的同时,从五个外部来源获取实时数据。

配置方式

该网站使用 SvelteKit 并搭配 adapter-static 适配器,在构建时将每个页面预渲染为 HTML。最终输出是一组 .html 文件组成的目录,并部署到 GitHub Pages。无需服务器、边缘函数或无服务器运行环境。

// svelte.config.js
import adapter from '@sveltejs/adapter-static';

const config = {
  kit: {
    adapter: adapter({
      fallback: '404.html',
      strict: false
    })
  }
};

fallback: '404.html' 这一行是关键所在。GitHub Pages 会为任何未匹配到预渲染页面的 URL 返回此文件,从而让 SvelteKit 的客户端路由接管后续操作。

三种数据新鲜度层级

并非所有数据都需要实时更新。该网站根据数据所需的新鲜程度,采用了三种不同的策略。

第一层级:部署时预渲染

首页通过一个 +page.server.ts 加载器从 北云 API 获取文章。由于页面是预渲染的,该加载器仅在构建时运行一次。

// src/routes/+page.server.ts
export async function load({ fetch }) {
  let northCloudArticles = [];
  try {
    northCloudArticles = await fetchNorthCloudFeed(fetch, 'pipeline', 6);
  } catch {
    // 首页可选显示此内容源
  }
  return { northCloudArticles };
}

这些数据被直接嵌入到 HTML 中。它只在你部署时更新,而不是在 API 数据变化时更新。对于首页展示用途而言,这种机制已经足够,即使文章来自昨天……

免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。

关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
支持 反馈 订阅 数据
回到顶部