同一段 HTML 在記事本打開能正常顯示圖片,但放入 ASP.NET 一般處理程序 中圖片卻不顯示。
一般處理程序 執行時的**當前工作目錄**通常是項目根目錄或編譯輸出目錄,而非 .ashx 文件所在目錄。若圖片使用相對路徑,瀏覽器會相對處理程序的 URL 解析,導致找不到資源。
/images/photo.jpg)。Server.MapPath:在後端讀取文件流時,用 context.Server.MapPath("~/images/photo.jpg") 獲取物理路徑。public void ProcessRequest(HttpContext context) {
string virtualPath = "~/images/photo.jpg";
string physicalPath = context.Server.MapPath(virtualPath);
if (File.Exists(physicalPath)) {
context.Response.ContentType = "image/jpeg";
context.Response.WriteFile(physicalPath);
} else {
context.Response.StatusCode = 404;
}
}
採用絕對虛擬路徑或服務端映射物理路徑,即可解決一般處理程序下圖片不顯示的問題。