2009-02-09 7 views
2

J'ai une application Django et j'utilise nginx pour servir du contenu statique. Malheureusement, tous les types MIME enregistrés sont affichés dans le navigateur client, alors que je voudrais donner la possibilité de télécharger le même contenu, avec le comportement habituel. Dites, j'ai un fichier JPEG sous /media/images/image01.jpg et je veux que nginx serve ce fichier de façon habituelle, avec l'en-tête standard image/jpeg, mais en plus je veux la même image à servir par nginx avec content-disposition: attachment (forçant effectivement le téléchargement de contenu) quand on accède à disons /downloads/images/image01.jpg. Quelqu'un peut-il proposer une solution?Différencier le comportement de nginx en fonction de l'URL

Répondre

6

Assurez-vous que vous avez le http_headers_module compilé (devrait être par défaut, si ce n'est pas dans le noyau)

utilisation. « Attachement de disposition de contenu add_header; »

Je recommande d'utiliser une URL comme "/download?file=/downloads/images/image01.jpg" combinée avec une règle de réécriture pour éviter un bug ennuyeux plus tard.

Http Headers Module Documention

+0

Pourquoi et comment voulez-vous utiliser URL avec des paramètres de la requête? Pour donner le fichier avec un nom de fichier incorrect pour l'utilisateur? – iny

+0

Merci, c'est tout. – zgoda

+0

La raison de l'utilisation d'une URL avec des paramètres de requête est de dire à nginx de ne forcer un téléchargement qu'en utilisant/download? File = {filename} En utilisant une règle de réécriture correctement, vous pouvez ajouter l'en-tête et continuer le reste des règles. La config de nginx. – epochwolf

Questions connexes