CodeBlanks Logo Icon CodeBlanks

URL.resolve

URL.resolve ile göreceli URL çözümlemeyi öğrenirsin.

Göreceli URL çözümleme

Bir sayfada "/alt" gibi göreceli (relative) bir bağlantı bulduğunda tarayıcı onu tam adrese çevirir. Buna URL çözümleme denir. Node.js'te new URL(relative, base) ile yaparsın.

Örnek: new URL("alt", "https://example.com/ana") sonucu https://example.com/alt'tır. new URL("../kardes", "https://example.com/a/b/c") sonucu https://example.com/a/kardes'tir. base ikinci parametredir; göreceli yol buna göre çözülür. Eski Node.js sürümlerinde url.resolve(base, relative) işlevi vardı; ama bu kaldırılmıştır. Yeni kodda her zaman new URL(relative, base) kullan. Bu yöntem, bir sayfadaki göreceli bağlantıları taramak (crawl) veya bir API kökünden (base) üç noktalar (endpoint) kurmak için kullanışlıdır.

Taban ve göreceli etkileşimi

Çözümleme sonucu, tabanın (base) son yol bileşenini göreceli yolun (relative) değiştirmesiyle oluşur. "./" aynı dizini, "../" üst dizini, "/" kökü ifade eder.

Örnekler: new URL("./x", "https://example.com/a/b") → https://example.com/a/x; new URL("../x", "https://example.com/a/b") → https://example.com/x; new URL("/x", "https://example.com/a/b") → https://example.com/x. Eğer göreceli yol https:// gibi bir protokol içeriyorsa taban yok sayılır; mutlak URL doğrudan kullanılır. Bu davranış tarayıcıdaki <a href> mantığıyla aynıdır. Bir sitenin tüm bağlantılarını tek bir tabandan çözümlemek, özelliği tutarlı yapar.

Uygulama Göreceli URL'yi çözümle

const base = "https://example.com/ana/sayfa"; tanımla. const resolved = new URL("alt", base); ile göreceli yolu çöz. console.log(resolved.href) ile sonucu yazdır.

Başlangıç kodu

index.js
// taban adresi tanımla
// buraya yaz

// göreceli yolu çözümle
// buraya yaz

// sonucu yazdır
// buraya yaz

Örnek çözüm

index.js
const base = "https://example.com/ana/sayfa";
const resolved = new URL("alt", base);
console.log(resolved.href);

Beklenen çıktı

https://example.com/ana/alt

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Göreceli bir URL'yi çözümlemenin modern yolu hangisidir?

index.js
new URL("alt", "https://example.com/ana")
  • new URL(relative, base) Doğru cevap
  • url.resolve(base, rel)
  • url.parse(rel)
  • path.join(base, rel)

Açıklama: new URL(relative, base) modern ve önerilen yoldur.

2 Göreceli yolu anlamına eşle

Kavram Anlamı
./x Aynı dizin
../x Üst dizin
/x Kök dizin
https://... Mutlak (taban yok sayılır)

3 Çözümleme çağrısını tamamla

Soru
const resolved = new URL(____, base);
Cevap
const resolved = new URL("alt", base);

Açıklama: Göreceli yol "alt" tabana göre çözülür.

Orta seviye bölümündeki tüm dersler