O tipo padrão de extensão de texto é text / plain. Esse comportamento é descrito no arquivo mime.types. Use o link ou link para substituí-lo (talvez definido como application / octet-stream).
Eu tenho o aplicativo Rails (Redmine), que funciona com o Nginx. Se eu estou clicando em qualquer anexo meu navegador (firefox, ou seja, chrome) me pedem para baixar o arquivo. Mas se eu estiver clicando em anexo do tipo txt, meu navegador abrirá esse arquivo no navegador.
Pelo que entendi, é tarefa do Nginx decidir - abrir o arquivo no navegador ou baixá-lo. Como posso configurá-lo?
Alterar os arquivos Content-Type
of .txt
pode funcionar, mas é uma maneira um pouco arriscada de resolver esse problema, porque você não pode garantir 100% de que o navegador do usuário responderá como você espera. E, além disso, é enganoso rotular um arquivo .txt
como um arquivo binário.
Em vez disso, sugiro usar o modo padrão para forçar o download de um navegador em vez de exibir o arquivo, que é usar o cabeçalho Content-Disposition
com um valor de attachment
( RFC 2616 ).
Por exemplo, esse bloco nginx location
enviará esse cabeçalho com .txt
arquivos sob o /downloads/
URI e, portanto, eles serão forçados a fazer o download:
location ~ ^/downloads/.*\.txt$ {
add_header Content-Disposition "attachment";
}
Assim, você pode adicionar outras correspondências adequadas, etc., adequadas à sua configuração.
Você precisa extrair o local para o arquivo para download e definir seu tipo de conteúdo como application/octet-stream
.
Temos a seguinte localização em nosso serviço para material de download para download (que inclui PDFs, imagens e alguns documentos, mas tenho certeza de que também funcionará com arquivos txt):
location /promomaterial/download/ {
add_header Content-Type application/octet-stream;
}
Todos os navegadores que experimentamos fazem o download de todos os arquivos desse local, em vez de tentar exibi-los.