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

2023-12-25

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

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

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

但是当我尝试使用需要上下文 https://webpack.js.org/guides/dependency-management/#requirecontext, 要求上下文 https://www.npmjs.com/package/require-context,或导入fs, 这不好。所以我决定尝试从内部要求这些库getStaticProps. But __dirname in getStaticProps is /,我的计算机文件系统的根。

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


这是 Next.js 中的一个已知问题(请参阅相关讨论#32236 https://github.com/vercel/next.js/discussions/32236), __dirname错误地解析为/- 你应该使用process.cwd()反而。

来自 Next.js读取文件 https://nextjs.org/docs/api-reference/data-fetching/get-static-props#reading-files-use-processcwd文档:

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

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

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

相反,你可以使用process.cwd()这为您提供了目录 Next.js 正在执行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Next.js:如何从 getStaticProps 中获取静态资源 的相关文章

随机推荐