İçeriğe geç

Production Hata Düzeltmeleri

Derin

Tarih: 2025-11-23 Durum: Tamamlandı

Kullanıcı canlı sitede (production) iki sorun raporladı:

  1. Login Autocomplete Uyarısı: Tarayıcı konsolunda password input için autocomplete özelliği eksik uyarısı.
  2. Upload Hatası (500): Dosya yükleme sırasında sunucu hatası. Bu, genellikle üretim ortamında klasör izinleri veya klasörün olmamasından kaynaklanır.

app/[locale]/admin/login/page.tsx dosyasında:

  • Email input alanına autoComplete="username" eklendi.
  • Password input alanına autoComplete="current-password" eklendi.
  • Inputlara id attribute’ları eklendi.

app/api/upload/route.ts dosyasında:

  • Dizin Kontrolü: existsSync ve mkdir kullanılarak public/uploads klasörünün varlığı kontrol edildi, yoksa oluşturulması sağlandı. Bu, özellikle VPS dağıtımlarında public/uploads klasörü git’e dahil edilmediyse oluşabilecek hataları önler.
  • Güvenli Dosya Adı: Dosya adındaki karakterler temizlenerek daha güvenli hale getirildi (replace(/[^a-zA-Z0-9.-]/g, '_')).
  • Hata Detayı: Hata durumunda konsola daha detaylı log basılması sağlandı.

Eğer proje Vercel veya Netlify gibi serverless ortamlarda barınıyorsa, public/uploads klasörüne yazmak kalıcı çözüm değildir (dosyalar bir sonraki deploy’da silinir). Kalıcı depolama için AWS S3, Cloudinary veya R2 gibi bir obje depolama servisi kullanılmalıdır. Şu anki düzeltme VPS/Container ortamları için çalışır.