【问题标题】:What is the equivalent of getStaticPaths in Sapper?Sapper 中的 getStaticPaths 等价物是什么?
【发布时间】:2020-07-13 20:24:12
【问题描述】:

在 NextJS 中有一个函数 getStaticPaths 告诉 NextJS 在导出时哪些路由实际可用。一个典型的例子是在/post/[id] 上有帖子的博客。假设有两个 ID 为 12 的帖子。在这种情况下,getStaticPaths 将确定并返回此信息,以便 NextJS 知道,它必须在执行 next export 时为 /posts/1/posts/2 呈现一个站点。

我想知道 Sapper 中的等价物是什么。我知道有 preload 函数,但是据我了解,这应该用于获取实际的发布数据,并且不能确定导出时实际存在哪些动态路由。

【问题讨论】:

    标签: svelte static-site sapper jamstack


    【解决方案1】:

    在 Sapper 中并没有真正的等价物,因为它的工作方式有点不同。要使 Sapper 项目可导出,所有页面都必须可以通过入口点的链接访问。目前,所有入口点都必须是索引页面,但有一个 Pr 打开以支持通常无法从站点上的链接访问的文件,例如站点地图。您可以指定多个入口点。但是,对于基本模板,入口点只是主索引页面。所有其他页面都是通过该页面的链接发现的。

    代码可以在这里找到:https://github.com/sveltejs/sapper/blob/f3e9fc48d281ff990458a4a537a50d59db105e37/src/api/export.ts#L93

    【讨论】:

    • 感谢您的回答。只是为了确保我正确理解它,目前它不会获取和导出所有博客文章,因为它们没有在索引文件或其他地方明确链接。
    • 是的。这是正确的。它基本上从入口点开始抓取您的网站并发现所有页面。如果无法从入口点直接或间接访问页面,则不会导出该页面。我提到的 PR 在这里:github.com/sveltejs/sapper/pull/1288。如果合并,您将能够添加其他页面作为入口点。
    • 这应该涵盖我错过的所有内容:sapper.svelte.dev/docs#Exporting
    猜你喜欢
    • 2014-05-08
    • 2014-06-12
    • 1970-01-01
    • 2022-11-28
    • 2021-06-19
    • 2012-07-20
    • 2023-03-30
    • 2011-04-08
    • 2014-09-24
    相关资源
    最近更新 更多