Nginx: servindo arquivos como texto sem ter .txt anexado a ele

2

Eu tenho alguns arquivos .rb (script Ruby) que eu link no meu site.

Por padrão, o navegador apenas os transfere para a pasta "Downloads", assim como os arquivos zip.

Eu quero que o navegador trate isso como texto, para que o script Ruby apareça no navegador.

Se eu fizer isso da maneira normal, no entanto, ele realmente aparece no navegador, mas o problema é que quando o usuário faz um "clique com o botão direito salvar como" no arquivo, o arquivo baixado é anexado com .txt , como myscript.rb.txt

Esta extensão .txt pode ser evitada com configurações nginx?

    
por lwood 27.09.2013 / 21:32

1 resposta

3

Você pode especificar em qual tipo MIME gostaria que o nginx servisse os arquivos, definindo a diretiva types em sua configuração nginx. Eu não sei sobre outras distribuições Linux, mas se você estiver usando o Ubuntu, /etc/nginx/mime.types é incluído por padrão.

Para veicular .rb arquivos como text\plain , certifique-se de que /etc/nginx/mime.types contenha o seguinte:

types {
   ...
   text/plain    txt rb;
   ....
}

Então você deve conseguir baixar os arquivos como txt sem a extensão txt. Eu fiz isso usando o Chrome / Mac OS X e funcionou como esperado. Nota: Isso significa que, se você estiver veiculando vários sites com nginx, todos retornarão arquivos com a extensão .rb como texto.

    
por 04.10.2013 / 15:37