2010-07-22 19 views
8

Quiero que Rack sirva un archivo específico con un tipo de contenido específico. Es un archivo .htc y necesita ser servido como texto/componente x para que IE lo reconozca. En apache solo lo haría¿Cómo establecer un tipo de contenido para un archivo específico con Rack?

AddType text/x-component .htc 

¿Cómo puedo lograr esto con Rack? Actualmente Rack :: Static sirve el archivo, pero no encontré una opción para establecer el tipo de contenido.

Respuesta

13

Puede actualizar su config/initializers/mime_types.rb así:

# 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

Que hizo el truco, gracias! No tenía mime_types.rb, así que lo puse directamente en el archivo config.ru. –

+0

lo siento, seguro que no tiene uno, es de rieles, pero como los rieles son un estante, funciona. – jigfox

+0

Normalmente mis proyectos de Rack no tienen un directorio de config/initializers, solo mis proyectos de rails tienen ... – Phillipp

0

O simplemente para responder a la pregunta, añadir esto en config/initializers/mime_types.rb:

Mime::Type.register "text/x-component", :htc 
Cuestiones relacionadas