アセットの扱い
静的アセットの参照
すべてのMarkdownファイルはVueコンポーネントにコンパイルされ、Viteによって処理されます。相対URLを使用してアセットを参照する事が**推奨されます**。

Markdownファイル、テーマ内の*.vue
コンポーネント、スタイル、およびプレーンな.css
ファイルでは、絶対パブリックパス(プロジェクトルートに基づく)または相対パス(ファイルシステムに基づく)を使用して静的アセットを参照できます。後者は、Vite、Vue CLI、またはwebpackのfile-loader
を使用したことがある場合に慣れている動作に似ています。
一般的な画像、メディア、およびフォントのファイルタイプは自動的に検出され、アセットとして含まれます。
リンクされたファイルはアセットとして扱われない
Markdownファイル内のリンクで参照されるPDFやその他のドキュメントは、自動的にアセットとして扱われません。リンクされたファイルにアクセスできるようにするには、プロジェクトのpublic
ディレクトリ内に手動で配置する必要があります。
絶対パスを使用するものを含め、参照されたすべてのアセットは、プロダクションビルドでハッシュ化されたファイル名で出力ディレクトリにコピーされます。参照されていないアセットはコピーされません。4kb未満の画像アセットはbase64インライン化されます。これはvite
設定オプションで構成できます。
絶対パスを含むすべての**静的**パス参照は、作業ディレクトリの構造に基づいている必要があります。
パブリックディレクトリ
Markdownやテーマコンポーネントで直接参照されていない静的アセットを提供する必要がある場合や、特定のファイルを元のファイル名で提供したい場合があります。このようなファイルには、robots.txt
、ファビコン、PWAアイコンなどがあります。
これらのファイルを、ソースディレクトリの下のpublic
ディレクトリに配置できます。たとえば、プロジェクトルートが./docs
で、デフォルトのソースディレクトリの場所を使用している場合、publicディレクトリは./docs/public
になります。
public
に配置されたアセットは、そのまま出力ディレクトリのルートにコピーされます。
public
に配置されたファイルは、ルートの絶対パスを使用して参照する必要があることに注意してください。たとえば、public/icon.png
はソースコードで常に/icon.png
として参照する必要があります。
ベースURL
サイトがルート以外のURLにデプロイされる場合は、.vitepress/config.js
でbase
オプションを設定する必要があります。たとえば、サイトをhttps://foo.github.io/bar/
にデプロイする予定の場合、base
は'/bar/'
に設定する必要があります(常にスラッシュで始まり、スラッシュで終わる必要があります)。
すべての静的アセットパスは、異なるbase
設定値に合わせて自動的に処理されます。たとえば、markdownでpublic
の下のアセットへの絶対参照がある場合

この場合、base
設定値を変更するときに更新する必要は**ありません**。
ただし、動的にアセットにリンクするテーマコンポーネントを作成している場合(例:src
がテーマ設定値に基づいている画像など)
<img :src="theme.logoPath" />
この場合、VitePressが提供するwithBase
ヘルパーでパスをラップすることをお勧めします。
<script setup>
import { withBase, useData } from 'vitepress'
const { theme } = useData()
</script>
<template>
<img :src="withBase(theme.logoPath)" />
</template>