2013-10-28 14 views
37

Cách ghi đè loại nội dung mặc định trong nginx? Hiện nay khi tôi yêu cầu 01.dae tập tin, cóBuộc nginx gửi Nội dung cụ thể Loại

Content-Type: application/octet-stream; 

Và tôi muốn nó được

Content-Type: application/xml; 

tôi đã cố gắng một cái gì đó giống như

location ~* \.dae$ { 
    types { }; 
    default_type application/xml; 
} 

location ~* \.dae$ { 
    add_header Content-Type application/xml; 
} 

nhưng không có gì hiệu quả.

+6

Chỉ thị _default_type_ sẽ hoạt động nhưng bạn cần xóa bộ nhớ cache của trình duyệt hoặc tải lại nội dung (hoặc "Tắt bộ nhớ cache" trong tab Công cụ/mạng nhà phát triển của Chrome). Nếu không, máy chủ sẽ trả về _304 Not Modified_ – stan

Trả lời

23

Bạn có thể sửa /etc/nginx/mime.types và thêm nó

types { 
    application/xml  dae; 
} 

tôi đã không tìm thấy chuỗi chính xác application/xml trong mime.types của tôi vì vậy tôi cho rằng bạn có thể trực tiếp đưa nó bên trong khối máy chủ của bạn, trong phạm vi máy chủ hoặc một cái gì đó .

31

Trong trường hợp khi bạn không có phần mở rộng tập tin: Giấy chứng nhận mã hóa

location ~ something { 
    default_type application/xml; 
} 

Trong trường hợp bạn cài đặt let với khách hàng mà tạo ra http server: How to use golang lego let's encrypt client behind nginx?

+1

Nếu có ai đó đang băn khoăn '~' chỉ thị nginx thực hiện một đối sánh regex phân biệt chữ hoa chữ thường và 'something' là vị trí (hoặc tệp nếu bạn thích) được khớp. – devius

0

Add "các dae application/xml;" đến phạm vi hoặc phạm vi vị trí máy chủ của bạn. Hoặc thêm nó vào mime.type.

Cả hai đều làm việc cho tôi.

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