質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Gatsby

Gatsbyとは、Reactベースの静的サイトジェネレータ。最新のフロントエンド技術を活かし、機能豊富なWebサイトやアプリケーションを作ることが可能です。GraphQLを用いてあらゆるソースからサイトのデータを取得。指定した設定に基づいて静的サイトを構築することができます。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

0回答

1045閲覧

Gatsby.js Twitter Cardの画像のみ表示されない(OGP)

kerry

総合スコア2

Gatsby

Gatsbyとは、Reactベースの静的サイトジェネレータ。最新のフロントエンド技術を活かし、機能豊富なWebサイトやアプリケーションを作ることが可能です。GraphQLを用いてあらゆるソースからサイトのデータを取得。指定した設定に基づいて静的サイトを構築することができます。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2021/09/19 13:38

前提・実現したいこと

現在、Gatsby.jsのスターターを使用してLPを作成しています。開発は一通り終わり、ドメインも取得して公開まで準備okな状態なのですが、Twitter Cardの画像が表示されず、苦戦しています。Card validatorを使って、プレビューしながら試しているのですが、どうやらtitle, desctiptionなどのmeta情報は読み込めているようです。(下記の画像通りです)
イメージ説明

会社のプロジェクトの為、Twitter Cardの画像が読み込まれないとLPの告知ができない為とても困っています。どなたかの知恵を借りたいです

該当のソースコード

使用しているスターターは、src/utils/helmet.tsというファイルにogp関連のコードを記述して、ccomponents/layout/BaseLayout.tsxでパッケージのreact-helmetでファイルを読み込んでいます。

helmet.ts

ts

1import favicon from "assets/images/favicon.png"; 2import share from "assets/images/ogp.png"; 3 4const title = "title"; 5const description = 6 "description"; 7 8export const helmet = { 9 title, 10 titleTemplate: "%s by LP", 11 htmlAttributes: { lang: "jp" }, 12 meta: [ 13 { name: "description", content: description }, 14 { 15 name: "viewport", 16 content: "width=device-width, initial-scale=1, user-scalable=no", 17 }, 18 { name: "apple-mobile-web-app-status-bar-style", content: "black" }, 19 { name: "msapplication-navbutton-color", content: "#000" }, 20 { name: "msapplication-TileColor", content: "#000" }, 21 { name: "theme-color", content: "#000" }, 22 23 { property: "og:title", content: title }, 24 { property: "og:image", content: share }, 25 { property: "og:image:width", content: "1200px" }, 26 { property: "og:image:height", content: "630px" }, 27 { property: "og:image:alt", content: description }, 28 29 { name: "twitter:title", content: title }, 30 { name: "twitter:card", content: "summary_large_image" }, 31 { name: "twitter:image", content: share }, 32 { name: 'twitter:site', content: '@username' }, 33 { name: 'twitter:creator', content: '@username' }, 34 { name: "twitter:description", content: description }, 35 ], 36 link: [{ rel: "icon", type: "image/x-icon", href: favicon }], 37}; 38 39

試したこと

1 importしている画像ファイルを絶対パスに変更→変わらず画像が表示されない

ts

1import share from "assets/images/ogp.png"; 2import share from "https://lp.com/src/assets/images/ogp.png";

2 shareの部分をパスに変更

ts

1{ name: "twitter:image", content: "assets/images/ogp.png" }, 2// or 3{ name: "twitter:image", content: "https://lp.com/src/assets/images/ogp.png" },

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問