#docusaurus
#docusaurus
Вопрос:
В Docusaurus V2 как создать ссылку на файл JSON в статической папке?
Я попробовал следующее в файле markdown:
An exemple, is the following [JSON dataset](../../static/data/solar-radiation.json).
Но Docusaurus затем выдает следующую ошибку:
./static/data/solar-radiation.json (./node_modules/file-loader/dist/cjs.js?name=assets/files/[name]-[hash].[ext]!./static/data/solar-radiation.json)
Module parse failed: Unexpected token e in JSON at position 0 while parsing near 'export default __web...'
File was processed with these loaders:
* ./node_modules/file-loader/dist/cjs.js
You may need an additional loader to handle the result of these loaders.
SyntaxError: Unexpected token e in JSON at position 0 while parsing near 'export default __web...'
at JSON.parse (<anonymous>)
Мой файл является допустимым JSON. По какой-то причине вместо отображения статического файла Docusaurus, похоже, пытается его проанализировать…
Ответ №1:
Я видел ту же проблему. Мое временное решение:
- Изменить имя файла с
.md
на.mdx
- Добавьте эту ссылку в свой файл json
<a target="_blank" href="/json/file.json" download="file.json">Download</a>
Ответ №2:
У меня тоже была такая же проблема!
Согласно выпуску # 3561 на Docusaurus GitHub, по словам одного из разработчиков, в настоящее время наилучшей практикой является использование pathname://
префикса перед вашим URL. Чтобы использовать ваш пример:
An exemple, is the following
[JSON dataset](pathname://../../static/data/solar-radiation.json).
По-видимому, причина, по которой это происходит, заключается в том, что существует конфликт между babel-loader
(используется для загрузки кода) и file-loader
(используется для загрузки статических ресурсов). pathname://
Префикс пропускает оба этих загрузчика и вместо этого просто создает ссылку.