2009-03-22 3 views
0

J'essaye de servir des fichiers statiques à télécharger dans une application django, j'ai pensé que je mettrais les fichiers statiques dans/media/files et qu'Apache réglerait l'en-tête content-type sur application/octet-stream (les fichiers à télécharger vont être des fichiers de mots mais je vais travailler sur les détails plus tard).Définition d'un en-tête dans Apache

Pour ce faire, j'activé mod_headers puis dans la configuration apache fait ceci:

 
<Location "/media/files"> 
    Header set Content-Type "application/octet-stream" 
</Location> 

Après avoir fait cela, je remis en marche apache et essayé un exemple de fichier mais il ne fonctionne pas, je reçois encore text/plain dans le type de contenu et le navigateur ne me demande pas de télécharger quoi que ce soit. Par ailleurs, je sais qu'il est recommandé d'utiliser un serveur web différent pour les fichiers statiques mais je n'ai pas beaucoup de contrôle sur le serveur que je vais déployer, il doit être seulement Apache avec mod_python.

Répondre

1

Il pourrait y avoir un certain nombre de problèmes (il faut beaucoup plus d'informations que vous avez fourni pour tracer vers le bas des problèmes de configuration apache) mais voici quelques réflexions:

  • Êtes-vous absolument certain cet extrait est étant appliqué aux bons fichiers (par exemple, s'il y a plusieurs serveurs virtuels, et que vous avez bloqué le mauvais, bon ...)
  • Avez-vous une réécriture en cours qui pourrait empêcher que cela soit considéré comme une correspondance?
  • Définissez-vous l'en-tête Content-Type ailleurs?
  • L'arbitrage de contenu est-il en cours? Selon, cela pourrait remplacer tout ce que vous faites dans les en-têtes.

Une chose que vous pourriez essayer est d'ajouter un autre en-tête et de voir s'il revient. Aussi, essayez de faire la demande vous-même avec telnet ou autrement réduire le nombre de choses entre vous et le serveur. Utilisez les fichiers journaux. Ils sont là pour vous aider. Bonne chance.

+0

Merci, la plupart du temps je demandais parce que je suis nouveau sur le web dev et je pensais qu'il y avait peut-être quelque chose qui clochait mais maintenant que je sais ce que je fais est en théorie correct je vais déboguer. –

Questions connexes