vue.js - VueJs 本地资源路径

标签 vue.js vuejs2 axios quasar

我正在开发 Vuejs 应用程序。基于 Quasar Framework ,在 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')这一行需要更正

最佳答案

如果数据是静态的(如本例),您可以这样导入它:

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

据我所知Quasar Framework已经配置了json loader

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

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';

关于vue.js - VueJs 本地资源路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46445425/

相关文章:

javascript - 格式化表格以在正确的列和行中显示数据

javascript - 拼接函数在 1 项数组中无法正常工作

vue.js - 将数据对象从父组件传递到子组件

vue.js - 使用Vuejs进行渐进增强——解析已有的HTML

javascript - NodeJS 中的 Axios.all 失败并出现 404 错误

vue.js - 使用 vuex 加载、保存和重新加载 ajax api 响应

javascript - Vue 未检测到使用 JQuery 或 JS 所做的更改

vue.js - Vue 如何从父组件访问子组件数据?

node.js - axios 可以 GET 但不能 POST 到同一 URL

javascript - axios在react js中的get请求上给出错误