トラブルシュート

QRコードで開くと404になる問題をAI生成HTMLで防ぐプロンプト

AIで生成したランディングページやHTMLをギガサイト便で公開してQRコードを配布したら404になった——このトラブルはAI生成HTML特有の設定漏れが引き金になるケースがあります。公開前に問題を防ぐプロンプトの書き方と、生成後に必ず確認すべきポイントを解説します。

よくある原因

AIが生成するHTMLは「ローカルで開く」ことを前提にしたパス設定になることがあります。`./images/hero.jpg` や `../css/style.css` のような相対パスが、共有サービスのサーバー構造と一致しないと、リソースが読み込まれず画面が崩れたり、リダイレクト設定が噛み合って404が返されたりします。単一HTMLファイルとして完結しているページでも、外部リソースの参照先が404になれば意図した表示になりません。

AIがJavaScriptでルーティングを実装するコードを生成した場合、静的ファイルホスティング(ギガサイト便・Cloudflare Pages等)では `/about` や `/contact` のようなパスが存在しないため404になります。AIはSPAのルーティング設定とサーバー側のフォールバック設定を同時に考慮しないことが多く、「開発環境では動くのに公開すると404」という事態が起きます。

  • 相手がログインなしで開ける状態か確認する
  • PCとスマホで最低1回ずつ表示を確認する
  • 内部情報・個人情報・不要な外部送信が残っていないか見る
  • レビュー期限と修正時の差し替え方を決めておく

自分側で確認すること

AI生成HTMLを受け取ったら、外部リソースへの参照(`src`、`href`、`action`属性)をすべてリストアップし、絶対URLか相対URLかを確認します。相対URLがある場合は、公開後のディレクトリ構造と一致しているかを確かめてください。ギガサイト便の場合、アップロードしたZIPの中身がそのままルートになるため、ZIPの構造とHTMLのパス記述が一致していれば問題ありません。

QRコードに埋め込む前に、公開URLをPCのブラウザのシークレットウィンドウで開き、すべてのリソースが読み込まれていることをDevToolsの「ネットワーク」タブで確認します。「ステータス」列でエラー(4xx/5xx)が出ているリソースがあれば、QRコード配布前に修正してください。特にフォントやOGP画像のパスは見落としやすいため、注意してください。

  • HTML内の外部script・form action・iframeを確認する
  • APIキーやトークンらしき文字列がないか検索する
  • 画像・CSS・JSのパスが公開後も解決できるか見る
  • noindexと認証を混同せず、必要なら両方設定する

相手側で確認すること

QRコードを配布した後に「404になった」という報告を受けたとき、まず相手のスマホのブラウザとOSのバージョンを確認します。古いAndroidのWebViewやiOS 14以前のSafariでは、モダンなJavaScript構文(Optional Chaining等)が動作せず、エラーで画面が空白になることがあります。この場合、404とは異なるエラーですが見た目が似ているため混同されます。

相手が企業ネットワーク内でQRコードを読み取っている場合、ファイアウォールや社内プロキシが共有サービスのURLをブロックしていることがあります。「自分の自宅Wi-Fiで試してもらう」または「スマホのモバイルデータ通信で試してもらう」よう依頼することで、ネットワーク制限が原因かを切り分けられます。

  • HTML内の外部script・form action・iframeを確認する
  • APIキーやトークンらしき文字列がないか検索する
  • 画像・CSS・JSのパスが公開後も解決できるか見る
  • noindexと認証を混同せず、必要なら両方設定する

再発防止の運用

AIへの指示に「単一HTMLファイルとして完結させ、外部ファイル参照を持たせないでください。CSS・JavaScriptはすべてインラインで記述し、画像はBase64埋め込みにしてください」と指定すると、パス問題を根本的になくせます。ただしファイルサイズが大きくなるため、QRコードで共有するページは軽量に保つようAIにも指示してください(「HTMLファイルサイズを500KB以内に収めてください」等)。

定期的に使う共有テンプレートは、一度手動でパスを修正した正しいバージョンをストックしておき、次回からそれをベースにAIに加工させる方法が効率的です。テンプレートに「このHTMLをベースに修正してください。パス構造は変えないでください」とプロンプトに明示すれば、AIがパスを勝手に変更するリスクを下げられます。

  • HTML内の外部script・form action・iframeを確認する
  • APIキーやトークンらしき文字列がないか検索する
  • 画像・CSS・JSのパスが公開後も解決できるか見る
  • noindexと認証を混同せず、必要なら両方設定する

よくある質問

AIにSPAを生成させたら公開後にリロードで404になります。防ぐプロンプトはありますか?

「JavaScriptルーティングを使わず、すべてのページを単一HTMLに収めてください。または各ページを別の静的HTMLファイルとして生成してください」と指定してください。SPAのルーティングは静的ホスティングでは追加設定が必要なため、AIに最初から静的HTML構成を指示するのが最善です。

画像をBase64埋め込みにするとQRコードで開くのが遅くなりますか?

画像のサイズによります。ロゴや小さなアイコン(数十KB以下)なら体感差はほぼありません。ヒーロー画像など大きな画像は200KB以下にリサイズしてからBase64化するか、Cloudinary等のCDNで配信する外部URLに差し替えてください。

生成されたHTMLのパスが正しいか自動的にチェックする方法はありますか?

html-validate(npmパッケージ)やW3C Markup Validation Serviceで構文チェックができます。リソースの実際の読み込み確認にはブラウザのDevToolsが最も確実で、「ネットワーク」タブのフィルターを「4xx」に絞ると読み込み失敗リソースを一覧できます。

関連記事

トラブルシュート

QRコードで開くと404になるときの原因と直し方

QRコードを読み取ると404になってしまう問題を解決したい制作者・担当者向けに、URL設定ミス・ページ削除・認証壁の3パターンを切り分けて修正する手順をまとめた記事。

5分で読める
「トラブルシュート」の記事をもっと見る →