解釋如何在ASP.NET Core中提供靜態檔案
靜態檔案指的是HTML、CSS、JavaScript和影像等內容,這些內容直接提供給使用者,無需任何動態計算。
在ASP.NET Core中,web根目錄儲存靜態檔案。預設情況下,它是{內容根目錄}/wwwroot目錄,但您可以使用UseWebRoot()方法更改它。
在Program類中,CreateDefaultBuilder()方法初始化內容根目錄。
public class Program{
public static void Main(string[] args){
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>{
webBuilder.UseStartup<Startup>();
});
}您可以為應用程式提供的每種型別的檔案建立不同的目錄。例如,名為**css**的目錄儲存樣式表,另一個名為js的目錄儲存應用程式使用的JavaScript程式碼,等等。
wwwroot目錄中的目錄可以透過相對於主機的路徑直接訪問。例如,如果您將影像儲存在wwwroot/pictures目錄中,使用者可以透過以下**URL**訪問這些影像:**https://<主機名>/images/<影像名稱>**
Startup.Configure()方法中的UseStaticFiles()方法啟用當前請求路徑的靜態檔案服務。
public void Configure(IApplicationBuilder app, IWebHostEnvironment env){
if (env.IsDevelopment()){
app.UseDeveloperExceptionPage();
}
else{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
}當您在授權中介軟體之前呼叫靜態檔案中介軟體時,框架不會對正在提供的靜態檔案執行任何授權檢查。因此,wwwroot目錄下的檔案是公開可訪問的。如果您想在提供靜態檔案之前授權請求,則需要將它們儲存在wwwroot目錄之外,並在呼叫UseAuthorization()之後呼叫靜態檔案中介軟體。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP