前提・実現したいこと
Nuxt.jsを使用してホームページを作成しているのですが、
staticディレクトリに保存している画像が正しく読み込まれません。
現在、OGPの設定を行っており、
[og:image]の設定にstaticディレクトリに保存した[img/ogp.jpg]を
適用させ、シェアデバッガーで確認したところエラーとなってしまいました。
そもそもstaticディレクトリに保存された同画像を
imgタグで表示させようとすると
開発環境では正しく表示されるのですが、
本番へデプロイすると画像が表示されないという状態になっております。
私としても調べたつもりでしたが、
答えにたどり着くことができなかったため質問させてください。
発生している問題・エラーメッセージ
シェアデバッガーでOGPの設定状況を確認したところ以下のエラーが表示されました。
https://***ドメイン***.com/img/ogp.jpgのダウンロード中にエラー(HTTP応答コード: 404)が発生しました
本番にデプロイしたサイトを検証ツールで確認したところ、Networkタグから[favion.ico]のエラーも出ておりました。
こちらも同じくstaticに保存している画像となります。
Request URL: https://***ドメイン***.com/favicon.ico Request Method: GET Status Code: 404 Remote Address: 76.76.21.21:443 Referrer Policy: strict-origin-when-cross-origin
該当のソースコード
nuxt.config.jsのコードは以下となります。
JavaScript
1export default { 2 ssr: false, 3 target: 'static', 4 5 head: { 6 title: "***タイトル***", 7 titleTemplate: "***タイトルテンプレート***", 8 htmlAttrs: { 9 lang: "ja", 10 prefix: 11 "og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# website: http://ogp.me/ns/website#" 12 }, 13 meta: [ 14 *** 一部省略 *** 15 { hid: "og:type", property: "og:type", content: "article" }, 16 { hid: "og:url", property: "og:url", content: "https://***ドメイン***.com" }, 17 { name: "twitter:card", content: "summary_large_image" }, 18 { hid: "note:card", property: "note:card", content: "summary_large_image" }, 19 { hid: "og:site_name", property: "og:site_name", content: "**サイト名**" }, 20 { hid: "og:title", property: "og:title", content: "***タイトル***" }, 21 { hid: "og:image", property: "og:image", content: "https://***ドメイン***.com/img/ogp.jpg" }, 22 { hid: "twitter:image", name: "twitter:image", content: "https://***ドメイン***.com/img/ogp.jpg" }, 23 { hid: "og:description", property: "og:description", content: "***文章***" } 24 ], 25 link: [ 26 { rel: "icon", type: "image/x-icon", href: "/favicon.ico" }, 27 { rel: "apple-touch-icon", href: "/icon.png" } 28 ] 29 } 30}; 31
また、staticディレクトリの画像をページで利用する際は、ドキュメントに従って以下のように書いております。
しかし、開発環境では確認できても本番にデプロイすると表示されません。
Vue
1<template> 2 <div> 3 <img src="/img/ogp.jpg" alt=""> 4 </div> 5</template>
試したこと
・[https://ドメイン.com/img/ogp.jpg]を直接ブラウザで入力しましたが画像が表示されませんでした。
・[http://localhost:3000/img/ogp.jpg]であれば、開発環境で確認できました。
・ページ生成の前にpwa関連のキャッシュ画像が削除されるようpackage.jsonのgenarateを以下に書き換えた。
JavaScript
1{ 2 "name": "***サイト名***", 3 "version": "1.0.0", 4 "private": true, 5 "scripts": { 6 "dev": "nuxt", 7 "build": "nuxt build", 8 "start": "nuxt start", 9 "generate": "rm -r /node_modules/.cache/pwa/icon && nuxt generate" 10 } 11}
補足情報(FW/ツールのバージョンなど)
フレームワーク : Nuxt.js(@nuxt/cli v2.15.7)
ホスティング先 : Vercel
データベース等 : Google Firestore と CloudStorage