首页 > 解决方案 > Next.js:如何从 getStaticProps 中获取静态资产

问题描述

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

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

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

但是当我尝试使用require.contextrequire-context或 importfs时,就不好了。所以我决定尝试从内部要求这些库getStaticProps。但__dirnamegetStaticPropsis 中/,我的计算机文件系统的根目录。

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

标签: node.jsreactjsnext.jsnetlify-cms

解决方案


这是Next.js 中的一个已知问题__dirname错误地解析为/- 您应该process.cwd()改用。

从 Next.js阅读文件文档:

文件可以直接从getStaticProps.

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

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

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


推荐阅读