Tôi đang sử dụng VirtualPathProvider
hiện đang ánh xạ đường dẫn ảo đến thư mục bên ngoài giải pháp. Tôi đang xây dựng chủ yếu để tự luyện tập. Điều này hoàn toàn tương đương với một liên kết mềm hoặc liên kết cứng NTFS trong thư mục của giải pháp.Tài nguyên tĩnh lưu vào bộ nhớ cache được trả lại qua VirtualPathProvider
Dù sao, tôi đã quản lý thành công tải hình ảnh tĩnh từ thư mục ảo đó bằng cách sử dụng nhà cung cấp tùy chỉnh của tôi.
Bây giờ vấn đề là trình duyệt sẽ không lưu hình ảnh. Và máy chủ thậm chí không nghĩ đến việc trả về thông tin bộ nhớ cache (như ETag).
Đây là những gì tôi đã thực hiện:
GetFile(path).Open()
lợi nhuậnFileStream
quaFile.Open()
- tôi đã làm không override
GetCacheKey
vàGetCacheDependencies
- tôi đã ghi đè
GetFileHash
trả lại băm Murmur (có vẻ là nhanh nhất, thậm chí là CRC-32) và đã thử nghiệm nó - Khi gỡ lỗi,.210 là không bao giờ gọi ở nhà cung cấp của tôi
CTRL-F5
chỉ ing trả về tiêu đề sau (không đề cập đến bộ nhớ cache)
Cache-Control private
Content-Length 476
Content-Type image/png
Date Sat, 29 Dec 2012 21:25:54 GMT
Server Microsoft-IIS/8.0
X-AspNet-Version 4.0.30319
X-Powered-By ASP.NET
X-SourceFiles [...]
Tôi hiện đang gỡ lỗi trong máy chủ debug của Visual Studio và Firefox được trang bị với Firebug.
Như một ví dụ, đây là những gì tôi mong đợi (http://i.stack.imgur.com/3mn3d.png)
Accept-Ranges bytes
Cache-Control max-age=315360000
Content-Length 1059
Content-Type image/png
Date Sat, 29 Dec 2012 21:35:29 GMT
Etag "7d636a8ef932ed081c16ace6f87b16e6"
Expires Fri, 12 Feb 2038 09:58:39 GMT
Last-Modified Tue, 14 Feb 2012 22:07:18 GMT
Server ECAcc (fcn/4089)
X-Cache HIT
Câu hỏi là rõ ràng: làm thế nào tôi có thể nhận được các trình duyệt không để tải lại các tài nguyên tĩnh này?
Bạn có thể giải thích giải pháp của mình cho vấn đề lưu vào bộ nhớ đệm không? –