Docusaurus создает отсутствующие шрифты

Я загружаю пользовательский шрифт с расположением в папке static/fonts, он отлично работает в режиме разработки (docusaurus start), но когда я строю (docusaurus build), результаты показывают, что шрифты, которые я использовал, не загружаются, потому что папка fonts находится снаружи папку static.

Структура папок при сборке

Это фрагмент, который я сделал в файле custom.css

@font-face {
    font-family: 'Indonesiana';
    src: url('/static/fonts/Indonesiana.woff') format('woff'),
    url('/static/fonts/Indonesiana.svg#Indonesiana') format('svg'),
    url('/static/fonts/Indonesiana.eot'),
    url('/static/fonts/Indonesiana.eot?#iefix') format('embedded-opentype');
    font-weight: normal;
    font-style: normal;
}

Спасибо.

🤔 А знаете ли вы, что...
React обеспечивает реактивное обновление интерфейса при изменении состояния.


854
2

Ответы:

Решено

Просто используйте относительные пути, и у вас будут правильные ссылки при сборке (при условии, что ваш css находится в src/css):

 @font-face {
        font-family: 'Indonesiana';
        src: url('../../static/fonts/Indonesiana.woff') format('woff'),
        url('../../static/fonts/Indonesiana.svg#Indonesiana') format('svg'),
        url('../../static/fonts/Indonesiana.eot'),
        url('../../static/fonts/Indonesiana.eot?#iefix') format('embedded-opentype');
        font-weight: normal;
        font-style: normal;
    }

Вы также должны добавить такой шрифт:

@font-face {
  font-family: "Indonesiana";
  src: url('/static/fonts/Indonesiana.woff') format('woff');
}
:root {
  --ifm-font-family-base: "Indonesiana"
}

Есть и другие способы сделать это для разных режимов, например:

  --ifm-font-family-monospace: "Indonesiana";