2010-07-22 21 views
8

Tôi muốn Rack cung cấp một tệp cụ thể với một loại nội dung cụ thể. Đó là tệp .htc và nó cần được phân phát dưới dạng văn bản/x thành phần để IE nhận ra nó. Trong apache tôi sẽ chỉ làmCách đặt loại nội dung cho một tệp cụ thể bằng Rack?

AddType text/x-component .htc 

Làm thế nào tôi có thể đạt được điều này với Rack? Hiện tại tập tin được phân phối bởi Rack :: Static, nhưng tôi không tìm thấy một tùy chọn để thiết lập kiểu nội dung.

Trả lời

13

Bạn có thể cập nhật config/initializers/mime_types.rb của bạn như thế này:

# Be sure to restart your server when you modify this file. 

# Add new mime types for use in respond_to blocks: 
# Mime::Type.register "text/richtext", :rtf 
# Mime::Type.register_alias "text/html", :iphone 

Rack::Mime::MIME_TYPES.merge!({ 
    ".ogg"  => "application/ogg", 
    ".ogx"  => "application/ogg", 
    ".ogv"  => "video/ogg", 
    ".oga"  => "audio/ogg", 
    ".mp4"  => "video/mp4", 
    ".m4v"  => "video/mp4", 
    ".mp3"  => "audio/mpeg", 
    ".m4a"  => "audio/mpeg", 
    ".htc"  => "text/x-component" 
}) 
+0

Điều đó đã làm các trick, cảm ơn bạn! Tôi không có mime_types.rb, vì vậy tôi đặt nó trực tiếp vào tập tin config.ru. –

+0

xin lỗi, chắc chắn bạn không có, nó là từ đường ray, nhưng kể từ khi đường ray là một rack lên, nó hoạt động. – jigfox

+0

Thông thường các dự án Rack của tôi không có thư mục config/initializers, chỉ các dự án đường ray của tôi có ... – Phillipp

0

Hoặc chỉ để trả lời câu hỏi, bổ sung này trong config/initializers/mime_types.rb:

Mime::Type.register "text/x-component", :htc 
Các vấn đề liên quan