Аксиос звонит, не работая с localhost в производстве - PullRequest
0 голосов
/ 06 сентября 2018

В моем названии указана моя проблема, но я на самом деле ищу лучшую практику. В случае моего текущего проекта я использую приложение vue.js для вызова сервера nodejs, который я использую на том же компьютере. В процессе разработки я просто жестко запрограммировал http://localhost/api/etc.... в свои вызовы axios и решил, что с тех пор, как я развернул оба в производстве, чтобы жить на одной и той же коробке, это было бы хорошо, но после развертывания я начал получать 404s для вызовов axios. Мне пришлось реорганизовать мой код, чтобы использовать фактическое DNS-имя сервера.

Теперь это работает, но я чувствую, что что-то упустил. Я не уверен, что это проблема узла (для сервера api) или apache (внешний интерфейс хостинга).

Как лучше всего обращаться с URL-адресами?

1 Ответ

0 голосов
/ 06 сентября 2018

Обычно люди создают модуль, который экспортирует пользовательский экземпляр axios с baseUrl.Я думаю, что это хорошая практика, потому что вы можете вызывать конечные точки только с относительной url и централизовать api url также в одном месте, упрощая переключение между development и production urls.

my-api-client.js

import axios from 'axios';

export const MyApiClient = axios.create({
  baseURL: 'https://some-domain.com/api/',
  timeout: 1000,
  headers: {'X-Custom-Header': 'foobar'}
});

app.js

import { MyApiClient } from './my-api.js';

MyApiClient.get('my-collection').then(...

Если ваш javascriptверсия не поддерживает операторы import и export, вы можете использовать require и module.exports соответственно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...