Skip to content

Работа с ресурсами

Ссылки на статические ресурсы

Все файлы Markdown компилируются в компоненты Vue и обрабатываются Vite. Вы можете и должны ссылаться на любые ресурсы, используя относительные URL:

md
![Изображение](./image.png)

Вы можете ссылаться на статические ресурсы в ваших файлах markdown, ваших компонентах *.vue в теме, стилях и обычных файлах .css, используя как абсолютные пути (основанные на корне проекта), так и относительные пути (основанные на файловой системе). Последнее аналогично поведению, к которому вы могли привыкнуть, если использовали Vite, Vue CLI или file-loader webpack.

Автоматически определяются и включаются в качестве ресурсов общие типы файлов изображений, медиа и шрифтов.

Все ссылки на ресурсы, включая те, что используют абсолютные пути, будут скопированы в выходной каталог с хешированным именем файла в продакшен-сборке. Ресурсы, на которые никогда не было ссылок, не будут скопированы. Ресурсы изображений размером меньше 4kb будут встроены в base64 - это можно настроить через опцию конфигурации vite.

Все статические ссылки на пути, включая абсолютные пути, должны основываться на структуре вашего рабочего каталога.

Публичный каталог

Иногда вам может потребоваться предоставить статические ресурсы, которые не связаны напрямую ни с одним из ваших файлов Markdown или компонентов темы, или вы можете захотеть обслуживать определенные файлы с оригинальным именем файла. Примеры таких файлов включают robots.txt, фавиконы и иконки PWA.

Вы можете разместить эти файлы в каталоге public в каталоге исходных файлов. Например, если корень вашего проекта находится в ./docs и используется местоположение каталога исходных файлов по умолчанию, то ваш публичный каталог будет ./docs/public.

Ресурсы, размещенные в public, будут скопированы в корень выходного каталога как есть.

Обратите внимание, что вы должны ссылаться на файлы, размещенные в public, используя абсолютный путь от корня - например, public/icon.png всегда должен быть ссылкой в исходном коде как /icon.png.

Базовый URL

Если ваш сайт размещается по не корневому URL, вам нужно установить опцию base в .vitepress/config.js. Например, если вы планируете разместить свой сайт по адресу https://foo.github.io/bar/, то base должен быть установлен в '/bar/' (он всегда должен начинаться и заканчиваться слешем).

Все пути к вашим статическим ресурсам автоматически обрабатываются для корректировки различных значений конфигурации base. Например, если у вас есть абсолютная ссылка на ресурс в public в вашем markdown:

md
![Изображение](/image-inside-public.png)

Вам не нужно обновлять его при изменении значения конфигурации base в этом случае.

Однако, если вы создаете компонент темы, который динамически ссылается на ресурсы, например, изображение, src которого основано на значении конфигурации темы:

vue
<img :src="theme.logoPath" />

В этом случае рекомендуется обернуть путь с помощью вспомогательной функции withBase, предоставляемой VitePress:

vue
<script setup>
import { withBase, useData } from 'vitepress'

const { theme } = useData()
</script>

<template>
  <img :src="withBase(theme.logoPath)" />
</template>

Содержание доступно по лицензии MIT