私のVueプロジェクトでは、次のステップの開発のためにいくつかのデータをモックアップしました。テストデータはすでにjson
ファイルに保存しています。そして、私のvueプロジェクトは、Vue-Cliで作成された典型的なプロジェクトであり、私のプロジェクトの構造は次のようになります。
_My_project
build
config
data
service_general_info.json
node_modules
src
components
component-A
component-A.vue
_
ご覧のとおり、すべてのフォルダーは元々vue-cliによって作成されています。そして、新しいフォルダーdata
を作成し、その中にテストデータのjsonファイルを配置します。
そして、次のように_component-A
_のコンポーネント内のイベント処理関数のaxios
ライブラリによってデータを読み込みたいと思います。
_ methods: {
addData() {
console.log('add json data...');
axios.get('./../../data/service_general_info.json');
},
},
_
相対パスを使用してターゲットファイルを見つけましたが、404エラーが返されました。では、パスを正しく設定する方法は?現在、ローカルホストでdev
モードを実行しています。
エラーメッセージは次のとおりです。GET http://localhost:8080/data/service_general_info.json 404 (Not Found)
Vue-cliプロジェクトでは、axios
はカスタムフォルダーからデータを取得できません。
テストjsonファイルを保存するには、static
フォルダーを使用する必要があります。
したがって、axios
呼び出しを次のように変更する必要があります。
axios.get('/static/service_general_info.json');
これはjsonからデータを取得します。
テストのためだけに実行している場合は、パブリックフォルダーに保存して、httpルートから直接アクセスできます。
例えばパブリックフォルダーにresults.jsonファイルがあり、 http:// localhost:8080/results.json を使用してアクセスできます。
私にとっては、静的フォルダーを使用しても機能しませんでした。 publicフォルダに入れなければなりませんでした。
Jsonフォルダーを公開して、以下のようにアクセスしました。
getCountries() {
return axios.get('json/country-by-abbreviation.json', { baseURL: window.location.Origin })
.then((response) => { return response.data; })
.catch((error) => {
throw error.response.data;
});
}
サーバーからhttp呼び出しが行われると、axiosはユーザーが接続していることを認識しません http:// localhost:808 、完全なURLを指定する必要があります。
このような:
methods: {
addData() {
console.log('add json data...');
axios.get('http://localhost:8080/data/service_general_info.json');
},
},