Definir um cabeçalho no apache
-
21-08-2019 - |
Pergunta
Eu estou tentando servir arquivos estáticos para download em uma aplicação Django, eu percebi que eu ia colocar os arquivos estáticos em / media / ficheiros e ter Apache definir o cabeçalho do tipo de conteúdo de application / octet-stream (o arquivos para download vão ser arquivos do word, mas eu vou trabalhar os detalhes mais tarde).
Para fazer isso eu ativei mod_headers e, em seguida, na configuração do apache fez isso:
<Location "/media/files"> Header set Content-Type "application/octet-stream" </Location>
Depois de fazer isso, eu reiniciado apache e tentou um arquivo de exemplo, mas não trabalho, eu ainda obter text / plain no tipo de conteúdo e o navegador não pede-me para baixar nada.
Pela maneira que eu sei é recomendado o uso de um servidor web diferente para arquivos estáticos, mas eu não tenho muito controle no servidor Vou implantar, tem que ser apenas Apache com mod_python.
Solução
Pode haver qualquer número de problemas (é preciso muito mais informações do que você forneceu para rastrear alguns problemas de configuração do apache), mas aqui estão alguns pensamentos:
- Você está absolutamente certo de que este trecho está sendo aplicado para os arquivos de direito (por exemplo, se houver vários servidores virtuais, e você preso presente na pessoa errada, bem ..)
- Você tem reescrever acontecendo que pode impedir que isto ser visto como um jogo?
- Você está definindo o cabeçalho Content-Type em outro lugar?
- Você tem arbitragem conteúdo acontecendo? Dependendo, que poderiam substituir tudo o que fazemos nos cabeçalhos.
Uma coisa que você pode tentar é adicionar algum outro cabeçalho e ver se ele volta. Além disso, tente fazer o pedido se com telnet ou elsewise reduzindo o número de coisas entre você e o servidor. Use os arquivos de log. Eles estão lá para ajudá-lo. Boa sorte.