Laravel Axios ile Farklı Proje Dizini Sorunu Çözümü

Yaşadığım bir sorun için basit bir çözümü paylaşmak istiyorum. Local veya canlı farketmeksizin bir dizin içerisinde Laravel kullanıyorsanız muhtemelen dizin, kodlarınıza bir şekilde yansıyor ve ortamlar arasıda fark oluşmasına neden olabiliyor.

Bu durum için kendimce uygun gördüğüm çözüm index olarak tanımladığım route ile Axios’a default olarak BaseURL girmek.

Nasıl Uyguluyorum?

Benim için ‘resources/views/layouts/app.blade.php’ olarak kullandığım ana layout içerisinde aşağıdaki gibi app-address meta tag’ını eklemek.

<!-- CSRF Token -->
<meta name="csrf-token" content="{{ csrf_token() }}">
<meta name="app-base-url" content="{{ url('/') }}">

‘resources/js/bootstrap.js’ içerisine de aşağıdaki kodu ekliyorum.

let appBaseURL = document.head.querySelector('meta[name="app-base-url"]');
if (appBaseURL) {
    window.axios.defaults.baseURL = appBaseURL.content;
}

Son olarak da Laravel Mix ile güncel çıktıyı alıyorum ki yaptığımız değişiklikleri aktif olarak görebilelim.

yarn run build

veya

npm run build

İşlem tamamdır, kullanıma geçebiliriz.

Nasıl Kullanıyorum?

Proje dizinim: http://localhost/ornek-proje
İstek atmam gereken URL: http://localhost/ornek-proje/ornek-endpoint

Hazırlamış olduğumuz ortamda kullanmamız gereken Axios örneği de şu şekilde;

axios.get('/ornek-endpoint')

Başka yazılarda görüşmek üzere, sağlıcakla kalın.

Yorum Gönderin

E-posta hesabınız yayımlanmayacak.