前提
Nuxt.js typescriptで静的なjson データを読み込んでページで一旦全データを表示させたい
下記のsteps.ts ファイルで asyncを使用してjsonデータをaxios.getしたデータを返す関数 getJsonDataを記述
vueファイルにてjsonを取得する関数を実行する
実現したいこと
typescriptで取得したjsonデータをフロント側に表示する。後ほどNuxtLinkでpathにそのパラメータを代入して動的にURLを遷移させる
発生している問題・エラーメッセージ
Axios 404エラーが表示される
AxiosError {message: 'Request failed with status code 404', name: 'AxiosError', code: 'ERR_BAD_REQUEST', config: {…}, request: XMLHttpRequest, …} code: "ERR_BAD_REQUEST" config: adapter: ƒ xhrAdapter(config) data: undefined env: {FormData: null} headers: {Accept: 'application/json, text/plain, */*'} maxBodyLength: -1 maxContentLength: -1 method: "get" timeout: 0 transformRequest: [ƒ] transformResponse: [ƒ] transitional: {silentJSONParsing: true, forcedJSONParsing: true, clarifyTimeoutError: false} url: "~/assets/json/step.json" validateStatus: ƒ validateStatus(status) xsrfCookieName: "XSRF-TOKEN" xsrfHeaderName: "X-XSRF-TOKEN" [[Prototype]]: Object message: "Request failed with status code 404" name: "AxiosError" request: XMLHttpRequest {onreadystatechange: null, readyState: 4, timeout: 0, withCredentials: false, upload: XMLHttpRequestUpload, …} response: {data: {…}, status: 404, statusText: 'Not Found', headers: {…}, config: {…}, …} [[Prototype]]: Error
該当のソースコード
・jsonデータを読み込んで丸々返す typescriptファイル
steps.ts
1import axios from 'axios'; 2 3 4export function setGuide() { 5 async function getJsonData() { 6 7 const { data } = await axios.get('~/assets/json/step.json') 8 9 console.log({data}) 10 11 return { 12 data 13 } 14 } 15 16 return { 17 getJsonData, 18 }; 19} 20
・データを表示させたいvueファイル
index.vue
1<template> 2 <div> 3 {{ jsonData }} 4 </div> 5</template> 6<script lang="ts"> 7 import { defineComponent } from '@nuxtjs/composition-api'; 8 import { setGuide } from '~/libs/setups/steps'; 9 import { wrapAsyncData } from '~~/src/libs/error-handling'; 10 11 export default defineComponent({ 12 asyncData: wrapAsyncData(async () => { 13 const { getJsonData } = setGuide(); 14 15 return { 16 jsonData: await getJsonData(), 17 }; 18 }), 19 }); 20</script> 21
試したこと
404エラーなのでtypescript内でのjsonファイルの読み込めていないのかなと思い、相対パスや@/ルートディレクトリにしてみたものの、同様のエラーが表示される
補足情報(FW/ツールのバージョンなど)
読み込みたいjsonファイルデータ(一部省略)
json
1[ 2 { 3 "id": 1, 4 "title": "ご利用手順", 5 "contents": [ 6 { 7 "id": 2, 8 "title": "はじめての方", 9 "contents": [ 10 { 11 "id": 3, 12 "title": "yucacy の使い方", 13 "contents": [ 14 { 15 "id": 4, 16 "title": "項目のタイトル", 17 "contents": [ 18 { 19 "id": 5, 20 "title": "説明のタイトル", 21 "body": "ご利用手順の内容が入ります。ご利用手順の内容が入ります。ご利用手順の内容が入ります。ご利用手順の内容が入ります。" 22 } 23 ] 24 } 25 ] 26 } 27 ] 28 } 29 ] 30 } 31 } 32] 33

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。