Kết hợp middleware trong một pipeline ASP.NET Core (phần 5)

Tình huống pipeline đơn giản 2: Xử lí các files tĩnh

Trong phần này, tôi sẽ thể hiện cho bạn làm cách nào tạo một trong những middleware pipelines đơn giản nhất
bạn có thể sử dụng cho một ứng dụng đầy đủ: một ứng dụng file tĩnh. Hầu hết các ứng dụng web, bao gồm những
cái với nội dung động, phục vụ một vài pages bằng cách sử dụng các files tĩnh. Các ảnh, Javascript và CSS
stylesheets thường được lưu vào ổ đĩa suốt quá trình phát triển và được phục vụ lên khi được yêu cầu từ
thư mục wwwroot đặc biệt của dự án của bạn, thường như là phần của một yêu cầu page HTML đầy đủ.
Định nghĩa Theo mặc định, thư mục wwwroot là thư mục duy nhất trong ứng dụng của bạn cái ASP.NET Core sẽ phục
vụ các files từ. Nó không phục vụ các files từ các thư mục khác vì lí do an ninh. Thư mục wwwroot trong một
dự án ASP.NET Core điển hình được triển khai khi đi vào sản xuất, bao gồm tất cả các files và thư mục nó
chứa.
Bạn có thể sử dụng StaticFileMiddleware để phục vụ các files tĩnh từ thư mục wwwroot khi được yêu cầu, như
thể hiện ảnh dưới. Trong ví dụ này, một ảnh gọi là moom.jpg tồn tại trong thư mục wwwroot. Khi bạn yêu cầu
file sử dụng đường dẫn /moon.jpg, nó được load và trả về như trả lời tới yêu cầu.
static
Nếu người dùng yêu cầu một file cái không tồn tại trong thư mục wwwroot , như missing.jpg static-file middleware
sẽ không phục vụ một file. Thay vào đó, một trả lời code lỗi 404 HTTP sẽ được gửi tới trình duyệt người dùng, cái
hiển thị trang “File Not Found” mặc định của nó, như thể hiện ảnh dưới.
Chú ý Page này trông như thế nào phụ thuộc vào trình duyệt của bạn. Trong một vài trình duyệt, bạn có thể thấy
trang trắng.
Xây dựng middleware pipeline cho ứng dụng file tĩnh đơn giản này là dễ dàng. Pipeline chứa một đoạn middleware đơn,
StaticFileMiddleware, như bạn có thể thấy trong code sau. Bạn không cần bất cứ dịch vụ nào, nên cấu hình middleware
pipeline với UseStaticFiles là tất cả cái được yêu cầu.

WebApplicationBuilder builder = WebApplication.CreateBuilder(args);
WebApplication app = builder.Build();
app.UseStaticFiles();
app.Run();

not found

Chia sẻ