2009-12-30 27 views
14

Tôi đang sử dụng một ControllerFactory tùy chỉnh (sử dụng IOC của Castle Windsor để tạo bộ điều khiển), và tôi nhận thấy nó nhận được yêu cầu tạo bộ điều khiển cho "favicon.ico". Tôi đã đặt một tập tin favicon.ico trong thư mục Nội dung của tôi, nhưng tôi vẫn nhận được những yêu cầu này.ASP.Net MVC - Tại sao bộ điều khiển được tạo cho favicon.ico?

Làm cách nào để giải quyết vấn đề này và phân phát nội dung tĩnh mà không cần tạo bộ điều khiển?

+1

này đã xảy ra với tôi bởi vì trình duyệt cố gắng tìm kiếm các favicon.ico trong thư mục gốc của bạn và vì một lý do asp.net nghĩ đó là một điều khiển, và nó điền các bản ghi của tôi với lỗi "bộ điều khiển favicon.ico không tìm thấy", tôi không biết nếu đây là những gì bạn đang nói về. – ryudice

Trả lời

28

Thêm các tuyến đường sau:

routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" }); 
+1

Tại sao không chỉ 'routes.IgnoreRoute (" favicon.ico ")'? – ANeves

+2

IgnoreRoute được đề xuất bỏ qua favicon.ico trong bất kỳ thư mục nào, không chỉ là thư mục gốc. Tôi nghĩ rằng nó đến từ blog của Phil Haack (http://haacked.com/archive/2008/07/14/make-routing-ignore-requests-for-a-file-extension.aspx) –

+1

Ồ, và nó phải là \. cho . trong biểu thức chính quy tức là favicon \ .ico –

Các vấn đề liên quan