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

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

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

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Nuxt.js

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

Q&A

1回答

919閲覧

Nuxtで作ったサイトが表示されない

Piesuke

総合スコア15

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Nuxt.js

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

0グッド

1クリップ

投稿2020/01/30 08:01

編集2020/01/30 08:03

前提・実現したいこと

Railsで記事を作成して、その情報をNuxtで表示させるサイトを作っています。

発生している問題・エラーメッセージ

ローカル環境では表示されますが、本番環境になるとAPIの読み込みがされず、ブラウザにAPIの情報が表示されません。

TypeError: Cannot read property 'title' of undefined```

該当のソースコード

_id.vue

1<div class="contents-header"> 2 <h1>{{posts.title}}</h1> 3 </div> 4 5 export default { 6 7head(){ 8 return{ 9 title: this.posts.title, 10 meta:[ 11 { hid: 'title', name: 'title', content: this.posts.title } 12} 13 14async asyncData({app,params,error}) { 15 const {id} = params; 16 const response = await axios.get(`https://hogehoge.com/api/v1/posts/${id}`) 17 .catch(err=> { 18 error({ 19 statusCode: err.response.status, 20 message: err.response.data.message, 21 }); 22 return err.response; 23 }); 24 const posts = JSON.parse(response.data) 25 return {posts}; 26 }, 27}

試したこと

APIの呼び出しをmounted内に書いたら表示はされましたが、代わりにOGPが表示されなくなりました...
拙い説明ですいません。どうかよろしくお願いします。

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

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

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

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

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

guest

回答1

0

Nuxtを静的サイトジェネレーターとして運用していませんか?
asyncDataはサーバーサイドで動作するように作られているメソッドですので、ローカルサーバー上の表示で問題はなくても静的生成した時点でほとんど動作しなくなりますので動的なメタ設定なども難しいでしょう。

静的のまま運用するのであればファイル生成時にAPIから全情報をとってデータ生成するのがベターです。
参考:【コードある】Nuxt + WordPress で netlify 運用が爆速すぎて神だった

投稿2020/01/30 09:55

nt4c

総合スコア768

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

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

Piesuke

2020/01/30 09:59

なるほど...静的のまま運用しておりました。 動的に運用したいとなったら、asyncdataを他のメソッドに変更すればよろしいでしょうか?
nt4c

2020/01/31 03:26 編集

動的(サーバーサイドレンダリング)な場合はasyncDataのままで良いと思います
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問