Tôi đang phục vụ các tệp .JSON, nhưng ngay cả khi tệp tồn tại, IIS vẫn liên tục xuất hiện lỗi 404 khi bất kỳ tệp nào được truy cập. Tôi đã thử đổi tên một trong các tệp thành .JS và nó hoạt động.
Bất kỳ con trỏ cài đặt nào có thể gây ra vấn đề này?
Tôi đang phục vụ các tệp .JSON, nhưng ngay cả khi tệp tồn tại, IIS vẫn liên tục xuất hiện lỗi 404 khi bất kỳ tệp nào được truy cập. Tôi đã thử đổi tên một trong các tệp thành .JS và nó hoạt động.
Bất kỳ con trỏ cài đặt nào có thể gây ra vấn đề này?
Câu trả lời:
Theo mặc định, IIS trong W2K3 trở lên sẽ không phục vụ các tệp không thuộc loại MIME mà nó biết (thay vào đó trả về lỗi 404).
Bạn cần thêm một loại MIME vào IIS để cho phép nó phục vụ loại tệp đó. Bạn có thể đặt nó ở cấp trang web hoặc ở cấp máy chủ.
Để đặt cái này cho toàn bộ máy chủ:
Tôi đã từng gặp vấn đề tương tự. IIS thực hiện một cái gì đó gọi là lọc kiểu MIME. Nếu nó không biết loại MIME của phần mở rộng tệp cụ thể, nó sẽ trả về lỗi 404.
Trên IIS <7: Mở thuộc tính trang web (hoặc máy chủ). Nhấp vào tab HTTP-Header . Nhấp vào nút MIME . Thêm loại tệp * với loại MIME "application / octet-stream".
Đối với IIS 7: Mở trình quản lý IIS. Nhấp vào máy chủ hoặc trang web. Bấm đúp vào biểu tượng tính năng MIME Forms . Trong ngăn Hành động, bấm Thêm . Điền vào hộp "Mở rộng tên tệp" bằng * và hộp MIME Type với "application / octet-stream".
Tôi đã thêm loại MIME .json
- text/json
vào trang web trong IIS để xem trong trình duyệt dưới dạng văn bản.
Để hợp nhất các câu trả lời thành một câu trả lời chung hơn:
Đây là lời cảnh báo:
Nếu bạn đang gặp phải loại sự cố này, hãy mở tệp nhật ký web của trang web và xem mã trạng thái phụ (ví dụ 404 3) để xác định chính xác lý do tại sao trang web của bạn không phục vụ nội dung cho IIS 6 hoặc
trong IIS 7.
Tôi cũng gặp vấn đề này - và vấn đề hóa ra là quyền của tệp trên thư mục nơi tệp json được lưu trữ. Tôi đã trả lời một câu hỏi tương tự ở đây .
Những người này đều đúng khi nói bạn cần thêm loại MIME.
Kiểu MIME cho phép mở rộng tệp trên máy chủ và Trình xử lý ánh xạ cho IIS biết phải làm gì với nó.
Vì vậy, bạn cũng phải thêm Trình xử lý ánh xạ và bạn phải cài đặt Tính năng Windows có tên Classic Asp để xử lý ánh xạ.
Handler Mappings
Add a Script Map
*.json
C:\WINDOWS\system32\inetsrv\asp.dll
JSON
(bạn có thể gọi nó là bất cứ điều gì bạn thích)Ngoài ra, một số người sẽ cho bạn biết để sử dụng `application / x-javascript' như các ứng dụng mime-type, nhưng JSON không phải là javascript, cho mỗi gia nhập (nó là một tập hợp con, tuy nhiên) và do đó nó phải được 'application / json' thay , vì đó là loại phương tiện đã đăng ký IANA cho JSON.