2017-07-20 8 views
2

Was ist der beste Weg, um API-URLs basierend auf der aktuellen Domain-Position innerhalb der Vue-Instanz festzulegen? In eckigen würde ich etwas Ähnliches wie Angular Environment verwenden, aber ich habe nichts Vergleichbares mit Vue oder Axios.Vue - Vue CLI - API Variablen

In diesem Fall ist mein Setup abhängig von mehreren Umgebungen (lokal, dev, stage, prod). Alles basierend auf einer Domänenbeziehung.

localhost = '/ API-Aufruf'

dev.domain.com = 'devapi.domain.com'

prod.domain.com = 'prodapi.domain.com'

Jede Hilfe wäre unglaublich!

Antwort

0

Oft was ich tun würde, ist es auf dem Backend in der Konfigurationsdatei zu speichern und dann die Variable in Axios zu setzen, aber Sie könnten auch die Browser-URL auf dem Frontend testen und Axios entsprechend einstellen. Wenn Sie die Axios-Instanz erstellen, würden Sie die baseURL-Eigenschaft auf Ihre Haupt-Site-URL setzen.

var instance = axios.create({ 
     baseURL: 'https://' + window.location.host + '/api/', 
     timeout: 1000, 
     headers: {'X-Custom-Header': 'foobar'} 
}); 
+0

Ich nehme an, Sie verwenden Laravel, weil Sie Axios erwähnt haben, aber wenn Sie mit der Umgebungsvariable gehen, dann können Sie es einfach in Ihrer Blade-Vorlage aufrufen. env ('Name_von_Ihr_Variable') –