Production Hata Düzeltmeleri
DerinTarih: 2025-11-23 Durum: Tamamlandı
1. Analiz
Bölüm başlığı “1. Analiz”Kullanıcı canlı sitede (production) iki sorun raporladı:
- Login Autocomplete Uyarısı: Tarayıcı konsolunda password input için autocomplete özelliği eksik uyarısı.
- 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.
2. Çözümler
Bölüm başlığı “2. Çözümler”Login Form Düzeltmesi
Bölüm başlığı “Login Form Düzeltmesi”app/[locale]/admin/login/page.tsx dosyasında:
- Email input alanına
autoComplete="username"eklendi. - Password input alanına
autoComplete="current-password"eklendi. - Inputlara
idattribute’ları eklendi.
Upload API Düzeltmesi
Bölüm başlığı “Upload API Düzeltmesi”app/api/upload/route.ts dosyasında:
- Dizin Kontrolü:
existsSyncvemkdirkullanılarakpublic/uploadsklasörünün varlığı kontrol edildi, yoksa oluşturulması sağlandı. Bu, özellikle VPS dağıtımlarındapublic/uploadsklasö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ı.
3. Önemli Not (Vercel/Serverless)
Bölüm başlığı “3. Önemli Not (Vercel/Serverless)”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.