Во время работы над моим бесплатным компаратором для стейкинга криптовалют — идеальным инструментом для поиска лучшей биржи для стейкинга или кредитования ваших криптовалют и получения наилучшего вознаграждения — я столкнулся с трудной для понимания проблемой.
Настройка
Сайт выполнен на Next / typescript
Он развернут на Vercel
Он загружает mdx через next-mdx-remote в getStaticProps
Сборка
Сборка работает нормально и результирующие статические файлы содержат содержимое mdx файла, который я загружаю в страницу.
Но после ревалидации, содержимого больше нет.
ERROR: Could not find /var/task/content/static/en/home.mdx
Как ни странно, папка content
существует во время сборки, таким образом корректно создавая статические файлы.
Но после развертывания папка content
больше не существует, в результате чего страница пересматривается с пустым содержимым.
Причина
Это происходит потому, что nextjs использует @vercel/nft для определения того, какие именно файлы (включая node_modules) необходимы для выполнения приложения.
Поэтому, когда вы используете
const folder = "toto"
fs.readFileSync(path.join(process.cwd(), folder))
эта библиотека не может угадать, что она должна включить в сборку, и поэтому не включает файлы.
Решение
Вам нужно указать именно путь к включаемому файлу, а не переменную, содержащую этот путь.
fs.readFileSync(path.join(process.cwd(),'toto'))
Спасибо!