ASP.NET Core MVC, statik dosyaları (resimler, css dosyaları, JavaScript dosyaları vb.) genellikle wwwroot klasöründen servis eder. Ancak bazı durumlarda, özel klasörlerdeki dosyalara da erişim sağlamak gerekebilir. Örneğin, Yonetim adında bir klasör oluşturup bu klasör altındaki dosyaları yönetim panelinde kullanabiliriz.
Adım 1: Gerekli Paketleri Projeye Dahil Etme
İlk olarak, statik dosyaları yönetmek için gerekli olan Microsoft.Extensions.FileProviders paketini projenize eklemelisiniz:
dotnet add package Microsoft.Extensions.FileProviders
Adım 2: Dosya Yöneticisi Oluşturma ve Ayarlama
Program.cs dosyanıza gidin ve UseStaticFiles() yöntemi altına özel bir dosya yöneticisi oluşturun ve ayarlayın:
using Microsoft.Extensions.FileProviders;
using System.IO;
var staticFileOptions = new StaticFileOptions
{
FileProvider = new PhysicalFileProvider(
Path.Combine(app.Environment.ContentRootPath, "Yonetim")),
RequestPath = "/Yonetim"
};
app.UseStaticFiles(staticFileOptions);
Bu kod, Yonetim adlı bir klasörü projenizin kök dizininden (ContentRootPath) alır ve bu klasör altındaki dosyaları /Yonetim yolundan sunar.
Adım 3: Dosyaları Kullanma
Şimdi, Yonetim klasörü altına yerleştirdiğiniz dosyaları, Razor sayfalarınızda veya HTML dosyalarınızda kullanabilirsiniz. Örneğin, bir görüntüyü img etiketi içinde kullanmak için:
<img src="/Yonetim/resimler/logo.png" alt="Logo">
veya bir bağlantı için:
<a href="/Yonetim/dosyalar/rapor.pdf">Raporu İndir</a>
Bu şekilde, statik dosyalarınızı wwwroot dışında herhangi bir klasörden kullanabilir ve yönetebilirsiniz.
Sonuç
ASP.NET Core MVC’de wwwroot dışındaki bir klasörden dosya çağırmak oldukça basittir ve yukarıdaki adımları takip ederek kolayca yapabilirsiniz. Bu yöntemle, özel uygulama bölgeleri veya yönetim panelleri için statik dosya yönetimini daha etkin bir şekilde sağlayabilirsiniz.