Favicon Tools検証作成
Astro · Not showing

Astro でファビコンが表示されない?その解決法

Astro は public/ を手を加えず出力へコピーしますが、アイコンのタグは代わりに挿入してくれません。タブが空白なら、ページが使うレイアウトに link が無いか、ページが独自の html 要素をレンダリングしてレイアウトを省いています。

public/ は名前を保つが、リンクは自動でされない

public/ のファイルは出力のルートにそのままコピーされるので、/favicon.svg や /favicon.ico は実在の URL です。しかし Astro は public/ をスキャンしてタグを挿入することはしません。head に入れたいものは、ページが自ら包むレイアウトコンポーネントに書き込む必要があります。

落とし穴はレイアウトを省くページです。独自の html 要素を書くカスタム 404 や単発のランディングページは、そこにもタグを追加しない限りアイコンのタグを持ちません。

抜けを見つける

  1. 1

    /favicon.ico(または /favicon.svg)を直接開く

    404 なら、ファイルが public/ にありません。読み込めるならファイルは問題なく、link タグの欠落が原因です。

  2. 2

    レイアウトが link をレンダリングしているか確認する

    通常のページでソースを表示します。rel=icon タグが無ければ、Layout.astro にそれが含まれていません。レイアウトの head に link タグを追加してください。

  3. 3

    レイアウトを省くページを確認する

    カスタム 404 や、独自の html を書くスタンドアロンのページは、レイアウトの head を継承しません。そこにもアイコンのタグを追加するか、レイアウトで包んでください。

Astro でファビコンが表示されない:よくある質問

Astro のファビコンが表示されないのはなぜですか?

Astro はアイコンのタグを一切挿入しないため、レイアウトが link をレンダリングしていないか、対象のページがレイアウトを省いているかのどちらかです。まずファイルがその URL で読み込めることを確認し、次にレイアウトの head に実際に rel=icon タグが含まれているか確認してください。

すべてのページにタグを追加しなければなりませんか?

ページが包むレイアウトにだけです。落とし穴はそうしないページで、独自の html 要素を書くカスタム 404 やランディングページには、タグを直接追加する必要があります。

サイトがサブパス配下にあり、アイコンが 404 になります。

astro.config.mjs で base を設定してください。ただし Astro は自分のマークアップにハードコードされたパスを書き換えません。href の先頭に import.meta.env.BASE_URL を付け、デプロイ前にビルド後の HTML を確認してください。

Keep going