3

我正在开发一个 Vuejs 应用程序。基于 Quasar 框架,在 src/components/Hello.vue 我有一个加载 json 文件的功能

axios.get('../assets/json/ar/myfile.json')
    .then(response => {
      // JSON responses are automatically parsed.
      console.log(response)
    })
    .catch(e => {
      this.errors.push(e)
    })

它返回错误,GET http://localhost:8080/assets/json/ar/ch78.json 404 (Not Found)

所以我的问题是如何从 src/assets 文件夹中获取文件? axios.get('../assets/json/ar/myfile.json')这条线需要更正

4

1 回答 1

5

如果数据是静态的(在这种情况下),您可以这样导入:

import myFile from './json/ar/myfile.json'
console.log(myFile.someProp); // will work

据我所知 Quasar Framework 已经配置了json加载器

如果数据是动态的(例如,您在编译时不知道文件名),您应该将服务器域存储在配置中的某个位置并将其与您的动态路径连接。它可能看起来像这样:

import { BASE_URL } from './config'
const lang = getCurrentLang(); // this is dynamic

axios.get(`${BASE_URL}/assets/json/${lang}/myfile.json`)
     .then()
     .catch();

在这种情况下./config可能看起来像:

export const BASE_URL = 'http://localhost:8080';
于 2017-09-27T12:12:12.063 回答