昨天我們介紹了middleware
後,是不是發現一個網頁中會使用多種不同的中介軟體,這些中介軟體都有各自不同的功用,那今天要來了解甚麼是靜態檔案(Static Files)
過去 ASP.NET 網站,只要把 .html、.css、.jpg、.png、*.js 等靜態檔案放在專案根目錄,預設都可以直接被瀏覽,但在 ASP.NET CORE 改動的瀏覽靜態檔案的方式。在還沒改動前預設是會去讀取靜態檔案的,但在新的版本後需要到特定的位置才能使用靜態檔案,現在預設的資料夾通常都命名wwwroot
,還要記得要先註冊才能使用,註冊方式就是昨天的UseStaticFiles
wwwroot
內的資料夾可以透過URL讀取~
對來對應到我們資料夾內的檔案 ex:~/css/site.css
2. 使用wwwroot
以外的資料夾保存靜態檔案
現在我們要多新增一個靜態檔案ex:/MyStaticFile/images
來放我們的圖片
新增Program.cs程式,在UseHttpsRedirection
後UseRouting
前
app.UseStaticFiles(new StaticFileOptions
{
FileProvider = new PhysicalFileProvider(
Path.Combine(builder.Environment.ContentRootPath, "MyStaticFile")),
RequestPath = "/StaticFiles"
});
再來我們可以啟動專案,輸入https://<hostname>/images/<image_file_name>
,ex:https://localhost:7098/StaticFiles/images/image.jpg
就可以看到你放的圖片了
UseStaticFiles 是依賴實作 IFileProvider 的物件讀取檔案,預設使用指向 wwwroot 實體目錄的 PhysicalFileProvider 物件,之前內嵌資源用的 ManifestEmbeddedFileProvider 是另一顆實作 IFileProvider 介面的物件。換言之,只要寫一顆元件實作 IFileProvider,便能依我們想要的方式儲存及取得靜態檔案內容
今天的解紹就先到這,今天比較少是因為靜態檔案這東西我還不太熟,只能把目前看到的東西寫出來,說實話應該還有很多沒講到,但希望大家體諒一下~~~