Next.js:如何从 getStaticProps 中获取静态资源

nth*_*ile 8 node.js reactjs next.js netlify-cms

我正在使用 Netlify CMS。我想将轮播的所有幻灯片导入到我的组件中。我制作了一个名为“滑块”的集合,并添加了一些幻灯片。这创建了两个 markdown 文件(每张幻灯片一个)public/content/slider/。我想将它们全部导入到一个可迭代对象中,以便我可以构建轮播。

因为我为 markdown 文件设置了 webpack 加载器,所以我可以毫无问题地导入单个 markdown 文件,如下所示:

import post from '../public/content/posts/[post name].md

但是当我尝试使用require.contextrequire-context或 import 时fs,效果并不好。所以我决定尝试从getStaticProps. 但__dirnamegetStaticPropsis中/,我的计算机文件系统的根目录。

所有getStaticProps示例都使用数据获取。我缺少一些信息。如何导入/slides/文件夹中的所有markdown文件?

jul*_*ves 19

这是 Next.js 中的一个已知问题(请参阅相关讨论#32236),__dirname错误地解析为/- 您应该使用process.cwd()它。

来自 Next.js读取文件文档:

可以直接从文件系统中读取文件getStaticProps

为此,您必须获取文件的完整路径。

由于 Next.js 将您的代码编译到一个单独的目录中,因此您不能使用它,__dirname因为它将返回的路径与页面目录不同。

相反,您可以使用process.cwd()它为您提供执行 Next.js 的目录。