Статические ресурсы
Введение
В Rspress можно использовать следующие статические ресурсы:
- Изображения, видео и другие статические ресурсы, используемые в файлах MDX
- Изображение логотипа в левом верхнем углу сайта
- Иконка сайта
- Логотип на главной странице
- Прочие статические ресурсы
Далее мы поочерёдно рассмотрим, как использовать каждый из этих ресурсов.
Под «корневой директорией документов», упомянутой ниже, понимается директория, указанная в поле root файла rspress.config.ts:
Статические ресурсы, используемые в файлах MDX
Вы можете импортировать статические ресурсы в файлах markdown (или mdx). Rspress построен поверх статических ресурсов Rsbuild.
Обычные статические ресурсы
Например, если структура директорий выглядит следующим образом:
Если изображение находится в той же директории, что и markdown-файл, вы можете сослаться на него следующим образом:
Конечно, вы также можете напрямую использовать тег <img> в файлах .mdx:
Оба варианта использования, описанные выше, будут преобразованы в:
Не только изображения, но вы также можете импортировать видео, аудио и другие статические ресурсы. Остальные способы использования полностью соответствуют Rsbuild.
Папка public
Папка public в директории с документацией может использоваться для размещения статических ресурсов. Эти файлы не обрабатываются во время сборки и могут быть напрямую доступны по URL.
- При запуске dev-сервера эти ресурсы будут доступны по пути, соответствующему base (по умолчанию —
/). - При выполнении production-сборки эти файлы копируются в директорию сборки документации (outdir).
Например, в папку public можно поместить такие файлы, как robots.txt, manifest.json или favicon.ico.
Вот пример размещения статических ресурсов в папке public. Если корневая директория документации — docs, и структура директорий выглядит следующим образом:
В указанном выше файле index.mdx вы можете использовать абсолютный путь для ссылки на demo.png:
Когда ваш сайт настроен с путём base и вы используете тег img с абсолютным путём, вам необходимо вручную добавить путь base к атрибуту src, используя функцию normalizeImagePath, предоставляемую из @rspress/core/runtime. Вот пример:
Логотип в левом верхнем углу
В Rspress логотип в левом верхнем углу можно указать с помощью поля logo. Например:
Поле logo поддерживает как строковую, так и объектную конфигурацию.
Когда logo — строка, возможны следующие варианты:
- Внешняя ссылка — как в примере выше.
- Абсолютный путь, например
/rspress-logo.png. В этом случае Rspress автоматически найдёт файлrspress-logo.pngв папкеpublicвнутри корневой директории документов и отобразит его. - Относительный путь, например
./docs/public/rspress-logo.png. В этом случае Rspress найдёт файлrspress-logo.pngотносительно корня проекта и отобразит его.
Если ваш сайт должен поддерживать тёмную тему, можно использовать объектную конфигурацию logo, например:
Здесь light — адрес логотипа в светлой теме, dark — адрес логотипа в тёмной теме. Способы их указания полностью совпадают с описанной выше строковой конфигурацией.
Favicon
В Rspress иконку сайта можно указать через поле icon. Например:
Поле icon поддерживает строку или URL, доступны следующие варианты:
- Внешняя ссылка — как в примере выше.
- Абсолютный путь, например
/favicon.ico. В этом случае Rspress автоматически найдёт файлfavicon.icoв папкеpublicвнутри корневой директории документов и использует его. - Относительный путь, например
./docs/public/favicon.ico. В этом случае Rspress найдёт файлfavicon.icoотносительно корня проекта. - Протокол
file://илиURL, напримерfile:///local_path/favicon.ico. В этом случае Rspress напрямую использует локальный файл по абсолютному пути/local_path/favicon.ico.
Логотип на главной странице
В метаданных главной страницы логотип можно указать через поле hero.image.src. Например:
Здесь src — строка, поддерживаются следующие варианты:
- Внешняя ссылка — как в примере выше.
- Настроен как абсолютный путь, например
/rspress-logo.png. В этом случае Rspress автоматически найдёт изображениеrspress-logo.pngв папкеpublicвашей корневой директории документации и отобразит его.
Другие статические ресурсы
В некоторых сценариях вам может понадобиться развернуть определённые специальные статические ресурсы, например, добавить файл конфигурации развёртывания _headers для Netlify, чтобы указать пользовательские HTTP-заголовки ответа.
В таком случае вы можете напрямую поместить эти статические ресурсы в директорию public корневой директории документации (например, docs). Во время процесса сборки проекта Rspress автоматически скопирует все ресурсы из public-директории в директорию сборки. Таким образом, ресурсы из public могут быть развернуты на сервере.

