2010-07-22 16 views
8

Je veux que Rack serve un fichier spécifique avec un type de contenu spécifique. C'est un fichier .htc et il doit être servi en tant que texte/x-composant afin que IE le reconnaisse. En apache je ferais justeComment définir un type de contenu pour un fichier spécifique avec Rack?

AddType text/x-component .htc 

Comment puis-je réaliser cela avec Rack? Actuellement, le fichier est servi par Rack :: Static, mais je n'ai pas trouvé d'option pour définir le type de contenu.

Répondre

13

Vous pouvez mettre à jour votre config/initializers/mime_types.rb comme ceci:

# 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

qui a fait l'affaire, je vous remercie! Je n'avais pas mime_types.rb, donc je l'ai mis directement dans le fichier config.ru. –

+0

désolé, bien sûr que vous n'en avez pas, c'est à partir de rails, mais puisque les rails sont en rack, ça marche. – jigfox

+0

Normalement mes projets Rack n'ont pas de répertoire config/initializers, seuls mes projets rails ont ... – Phillipp

0

Ou juste pour répondre à la question, ajoutez dans config/initializers/mime_types.rb:

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