🥹

Laravel + Inertia.js プロジェクトでのファビコン変更完全ガイド

に公開

概要

Webサイトのファビコン(サイトアイコン)を変更する作業は、意外と毎回手順を忘れがちです(私はよく忘れます笑)。この記事では、Laravel + Inertia.jsプロジェクトでファビコンを確実に変更・反映させる方法を整理します。

ファビコンとは

ファビコン(favicon)は、ブラウザのタブやブックマークで表示される小さなアイコンのことです。サイトの識別性を高め、ユーザビリティを向上させる重要な要素です。

必要なファイル形式

現代のWebサイトでは、以下の3つのファイルを用意するのが標準的です:

ファイル 形式 用途 サイズ
favicon.ico ICO 古いブラウザ対応 16x16, 32x32, 48x48のマルチサイズ
favicon.svg SVG モダンブラウザ向け ベクター形式(スケーラブル)
apple-touch-icon.png PNG iOS Safari のホーム画面アイコン 180x180px

[!NOTE]
SVGファビコンはベクター形式のため、どのサイズでも美しく表示されます。ただし、古いブラウザでは対応していないため、ICOファイルも併用します。

手順1: ファビコンファイルの準備

1-1. 元画像の準備

  • 推奨サイズ: 512x512px以上の正方形画像
  • 形式: PNG、JPG、SVGなど
  • デザイン: シンプルで小さくても視認しやすいデザイン

1-2. 各形式への変換

ICOファイルの作成

# ImageMagickを使用した変換例
convert original.png -resize 16x16 favicon-16.png
convert original.png -resize 32x32 favicon-32.png
convert original.png -resize 48x48 favicon-48.png
convert favicon-16.png favicon-32.png favicon-48.png favicon.ico

SVGファイルの作成

  • ベクター形式の元ファイルがある場合はそのまま使用
  • PNG/JPGからの変換も可能(ただしベクターの利点は失われる)

Apple Touch Iconの作成

# 180x180pxにリサイズ
convert original.png -resize 180x180 apple-touch-icon.png

[!TIP]
オンラインツール「Favicon Generator」を使用すると、一度に全形式のファビコンを生成できて便利です。

手順2: ファイルの配置

2-1. ファイルの配置場所

Laravelプロジェクトでは、ファビコンファイルを public/ ディレクトリに配置します:

public/
├── favicon.ico
├── favicon.svg
└── apple-touch-icon.png

2-2. 既存ファイルの削除と新ファイルの配置

ファビコンを変更する際は、既存ファイルを削除してから新しいファイルを配置することをお勧めします。これにより確実にファイルが置き換わります。

Step1: 既存ファイルの削除

# プロジェクトルートから実行
# 既存のファビコンファイルを削除
rm public/favicon.ico
rm public/favicon.svg
rm public/apple-touch-icon.png

Step2: 新しいファイルの配置

# 新しいファビコンファイルをコピー
cp /path/to/new/favicon.ico public/favicon.ico
cp /path/to/new/favicon.svg public/favicon.svg
cp /path/to/new/apple-touch-icon.png public/apple-touch-icon.png

一括で実行する場合

# 削除とコピーを一括実行
rm public/favicon.ico public/favicon.svg public/apple-touch-icon.png
cp /path/to/new/{favicon.ico,favicon.svg,apple-touch-icon.png} public/

[!WARNING]
ファイルを削除する前に、必要に応じて既存ファイルのバックアップを取っておきましょう。

[!TIP]
単純な上書きコピーでも動作しますが、削除→コピーの手順の方がファイルが確実に置き換わるため推奨します。

手順3: HTMLでの設定確認

3-1. Bladeテンプレートの確認

resources/views/app.blade.php で以下のように設定されていることを確認します:

<link rel="icon" href="/favicon.ico" sizes="any" />
<link rel="icon" href="/favicon.svg" type="image/svg+xml" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />

3-2. 各タグの説明

タグ 説明
<link rel="icon" href="/favicon.ico" sizes="any"> ICOファイルを全サイズで使用
<link rel="icon" href="/favicon.svg" type="image/svg+xml"> SVG対応ブラウザではSVGを優先
<link rel="apple-touch-icon" href="/apple-touch-icon.png"> iOS Safariのホーム画面アイコン

[!NOTE]
ブラウザは上から順番にサポート状況を確認し、対応している形式を選択します。SVGに対応していないブラウザは自動的にICOファイルを使用します。

手順4: キャッシュクリアと反映確認

4-1. ブラウザキャッシュのクリア

ファビコンは強力にキャッシュされるため、変更が反映されない場合があります:

  1. ハードリロード: Ctrl + F5 (Windows) / Cmd + Shift + R (Mac)
  2. 開発者ツール: ブラウザの開発者ツールを開いて「Disable cache」をチェック
  3. シークレットモード: 新しいシークレット/プライベートウィンドウで確認

4-2. 複数ブラウザでの確認

  • Chrome
  • Firefox
  • Safari
  • Edge

4-3. モバイルデバイスでの確認

  • iOS Safari (Apple Touch Icon)
  • Android Chrome

手順5: 開発サーバーでの確認

5-1. サーバー再起動

# 開発サーバーを再起動
composer dev

5-2. アクセス確認

[!TIP]
ファビコンファイルに直接アクセスして、正しくファイルが配置されているかを確認できます。404エラーが出る場合は、ファイルパスが間違っている可能性があります。

トラブルシューティング

よくある問題と解決法

1. ファビコンが表示されない

原因: ファイルパスの間違い、キャッシュ問題
解決法:

  • ファイルパスの確認 (public/ ディレクトリに配置されているか)
  • ブラウザのハードリロード
  • シークレットモードでの確認

2. 一部のブラウザでのみ表示されない

原因: ファイル形式の非対応
解決法:

  • ICO、SVG、PNGの3形式すべてを用意
  • HTMLの設定を確認

3. iOS Safariでホーム画面に追加した時のアイコンが変わらない

原因: Apple Touch Iconのサイズ不適切
解決法:

  • 180x180pxの正確なサイズで作成
  • PNGファイルで保存

4. 変更が反映されない

原因: 強力なブラウザキャッシュ
解決法:

# ファイル名を変更してキャッシュを無効化
mv public/favicon.ico public/favicon.ico.bak
cp new-favicon.ico public/favicon.ico

まとめ

ファビコン変更の作業フローは以下の通りです:

  1. ファイル準備: ICO、SVG、PNGの3形式を用意
  2. 配置: public/ ディレクトリに配置
  3. HTML確認: app.blade.php の設定を確認
  4. キャッシュクリア: ブラウザキャッシュをクリア
  5. 動作確認: 複数ブラウザ・デバイスで確認

[!TIP]
定期的にファビコンを変更する場合は、このドキュメントをブックマークしておくと便利です。また、ファビコン生成ツールの使用も検討してみてください。

参考リンク


この記事が、ファビコン変更作業の効率化に役立てば幸いです。

Discussion