如何为laravel-vujs项目设置root / base url?

时间:2017-09-01 07:47:03

标签: vuejs2 laravel-5.4 vue-router vuex

我已将VueJS项目部署到www.example.com/demos/app, 这样的域 但是,当我从axios向api发送请求时,它指向www.example.com/login而不是www.example.com/demos/app/login

以下是使用axios

的请求代码
export const login = ({ dispatch }, { payload, context }) => {
    return axios.post('/login', payload).then((response) => {
        // do something
    }).catch((error) => {
        // handle erros
    })
}

3 个答案:

答案 0 :(得分:10)

您可以采用的一种方法是在页面的头部添加元标记(就像使用csrf一样),然后在bootstrap.js文件中引用它:

<强>头

<meta name="api-base-url" content="{{ url('demos/app') }}" />

bootstrap.js (位于window.axios = require('axios');下方)

window.axios.defaults.baseURL = document.head.querySelector('meta[name="api-base-url"]').content;

希望这有帮助!

答案 1 :(得分:1)

在config.js中:

const CONFIG = {
  API_URL_ROOT: 'http://localhost:8000/api/v1/',
}

export default CONFIG;

您可以像这样设置axios默认值:

import config from '../config.js';

axios.create({
  baseURL: config.API_BASE_URL
});

或者您可以通过从API_BASE_URL导入config来设置路径,然后在每次使用get/post/put/delete进行axios来电时将其指向

答案 2 :(得分:1)

Laravel随附了axios,并将其导入bootstrap.js中,因此只需转到bootstrap.js并添加以下内容即可:

window.axios.defaults.baseURL = 'http://example.test';

您可以在window.axios.defaults.headers.common行之后添加它

-其他信息:

axios.create将创建一个具有自己的全局URL和配置的实例。如果您有多个网址或配置,并且想要在不同的组件中使用它,请使用它。