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

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

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

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

非同期処理

非同期処理とは一部のコードを別々のスレッドで実行させる手法です。アプリケーションのパフォーマンスを向上させる目的でこの手法を用います。

Q&A

解決済

1回答

2009閲覧

OGPにContentfulからの画像を当て込む方法

ryoii

総合スコア6

Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

非同期処理

非同期処理とは一部のコードを別々のスレッドで実行させる手法です。アプリケーションのパフォーマンスを向上させる目的でこの手法を用います。

0グッド

0クリップ

投稿2019/08/05 14:54

Contentfulからの画像をOGPの画像設定に当て込みたいのですがうまく表示してくれなく、、、
Facebookのシェアなどで画像が表示されない状況です。
行き詰まってしまったので、わかるかたご意見お願い申し上げます。

export default { asyncData({ params, error, payload, env }) { if (payload) return { article: payload } return client .getEntries({ 'content_type': env.CTF_HOGE_TYPE_ID, 'fields.name': params.name, order: '-sys.createdAt' }) .then(entrie => { return { article: entrie.items[0] } }) .catch(console.error) }, head () { return { title: `${this.article.fields.name_ja} PROFILE`, meta: [ { hid: 'description', name: 'description', content: `${this.article.fields.work}` }, { hid: 'og:url', property: 'og:url', content: `https://www.hogehoge.com/${this.article.fields.name}/profile` }, { hid: 'og:type', property: 'og:type', content: 'article'}, { hid: 'og:title', property: 'og:title', content: `${this.article.fields.name_ja} `}, { hid: 'og:description', property: 'og:description', content: `${this.article.fields.work}` }, { hid: 'og:image', property: 'og:image', content: `https:${this.article.fields.client_top_image.fields.file.url}`}, { hid: 'og:image:alt', property: 'og:image:alt', content: `${this.article.fields.name_ja}`}, /* twitter card */ { property: 'twitter:url', content: `https://www.hogehoge.com/${this.article.fields.name}/profile` }, { hid: 'twittter:title', property: 'twitter:title', content: `${this.article.fields.name_ja} `}, { property: 'twitter:description', content: `${this.article.fields.work}` }, { property: 'twitter:image:src', content: `https:${this.article.fields.client_top_image.fields.file.url}` }, ] } } }

asyncDataでContentfulから受け取った画像URLをheadのmeta[og:image]に設定しようとしているんですが。。。
これではうまく表示されてくれません。。。

わかる方何卒よろしくお願い申し上げます。

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

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

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

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

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

mikkame

2019/08/05 15:25

SSRしないとogpは読み込んでくれないと思うんですがそこは大丈夫ですか? (Facebookのクローラはjsを実行しない)
ryoii

2019/08/05 15:35

ご指摘ありがとうございます。 SSRは行なっております。
CHERRY

2019/08/05 22:47

asyncData で OGP を設定するなら、asyncDataは SSR 側で実行する必要がありますが、SSR 側でダメということでしょうか?
ryoii

2019/08/06 00:24

SSR側でasyncDataを実行するというのはどういうことでしょうか? asyncDataを使うだけではSSRにならないのでしょうか? 質問を質問で返す形で大変恐縮です。
guest

回答1

0

自己解決

facebookのシェアデバッカーのレスポンスコードが404だったので、ちゃんとgenerateできていないことに気づき、それが原因でした。

nuxt.config.js

const ctfConfig = getConfigForKeys([ 'CTF_TYPE_ID', 'CTF_SPACE_ID', 'CTF_CDA_ACCESS_TOKEN' ]); const { createClient } = require('./plugins/contentful') const cdaClient = createClient(ctfConfig) const clientPromise = cdaClient.getEntries({ 'content_type': 'client', order: '-sys.createdAt' }); module.exports ={ mode: 'universal', generate: { async routes() { return Promise.all([clientPromise]) .then(([hoges]) => { const urls = [] hoges.items.forEach(item => { urls.push(`${item.fields.name}/hoge1`) urls.push(`${item.fields.name}/hoge2`) urls.push(`${item.fields.name}/hoge3`) urls.push(`${item.fields.name}/piyo`) urls.push(`${item.fields.name}/fuga`) }); return urls }); } }

投稿2019/08/07 13:02

編集2019/08/07 13:06
ryoii

総合スコア6

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問