Saltar al contenido

Nginx intenta descargar el archivo en lugar de mostrar

El tutorial o código que encontrarás en este post es la resolución más sencilla y efectiva que hallamos a esta duda o dilema.

Solución:

Eliminar default_type application/octet-stream;. Estas líneas hacen que el navegador piense que se trata de datos binarios y no de HTML.

Como otros señalaron, esta es la línea que causa su problema:

default_type application/octet-stream;

Esta línea anula la línea anterior y le dice a Nginx que envíe cualquier respuesta como datos binarios genéricos. Y, dado que los navegadores no pueden hacer nada específico con los datos binarios, simplemente los descargan como un archivo.


Eliminando o comentando esa línea, así como la línea de arriba:

#include /etc/nginx/mime.types;
#default_type application/octet-stream;

debería funcionar, ya que el comportamiento predeterminado de Nginx es enviar todo como text/plain y los navegadores son lo suficientemente inteligentes para manejar HTML/CSS/JS de esta manera.

A pesar de eso, no recomendaría esa solución, ya que es posible que necesite servir diferentes tipos de contenido desde su servidor, es decir, imágenes, mp3, archivos binarios, etc.


Aquí hay una mejor solución:

Primero, revisa ese archivo /etc/nginx/mime.types; realmente existe y es accesible para leer para el usuario que ejecuta nginx.

Luego, verifique que el archivo realmente contenga types ... declaraciones. Ese archivo viene empaquetado con Nginx y contiene valores predeterminados sensibles para los tipos MIME y la asignación de extensiones de nombre de archivo. Si algo está mal con el archivo, puede copiar y pegar su contenido desde esta esencia:

https://gist.github.com/KondorB/dd34feba1d63bd468ded4ee70e59ea07

Y finalmente, en nginx.conf cambiar

default_type application/octet-stream;

para

default_type text/html;

Ahora Nginx servirá cada tipo de contenido en función de las extensiones de nombre de archivo. Y si no se proporciona ninguno, como es el caso de algunos sistemas/aplicaciones de back-end, intentará servir HTML.


Tenga en cuenta que es posible que desee cambiar algunos de esos valores predeterminados. Por ejemplo, con esa configuración:

types 
    audio/mpeg mp3;

los navegadores generalmente intentarán reproducir la canción en lugar de descargarla directamente. Que se puede cambiar, si es necesario, declarando:

types 
    application/octet-stream mp3;

Puntuaciones y reseñas

Te invitamos a añadir valor a nuestro contenido cooperando tu experiencia en las críticas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *