我正在使用netflix CMS。我想将旋转木马的所有幻灯片导入到我的组件中。我制作了一个名为slider的集合,并添加了一些幻灯片。这在public/content/slider/
中创建了两个标记文件(每个幻灯片一个)。我想把它们全部导入到一个可迭代的对象中,这样我就可以构建carousel了。
因为我已经为markdown文件设置了一个webpack加载器,所以我可以导入单个markdown文件,就像这样:
import post from '../public/content/posts/[post name].md
但是当我尝试使用require。context, require-context,或者importfs
,都不行。所以我决定尝试从getStaticProps
中要求这些lib。但是getStaticProps
中的__dirname
是/
,我的计算机文件系统的根目录。
所有getStaticProps
示例都使用数据抓取。我漏掉了一些信息。如何导入/slides/
文件夹中的所有markdown文件?
这是Next.js中的一个已知问题(参见相关讨论#32236),__dirname
错误地解析为/
-您应该使用process.cwd()
代替。
From Next.js Reading files documentation:
文件可以直接从
getStaticProps
的文件系统中读取。为了做到这一点,你必须得到一个文件的完整路径。
因为Next.js将你的代码编译到一个单独的目录中,所以你不能使用
__dirname
,因为它返回的路径将不同于网页目录。您可以使用
process.cwd()
,它给出了您的目录Next.js正在执行