para paginas lista etiquetas estilos enlazar ejemplos descargar codigos css nginx mime

paginas - etiquetas css pdf



Nginx no puede cargar archivos css (8)

De hecho, me tomé mi tiempo revisé todas las respuestas anteriores en esta página, pero fue en vano. Simplemente cambié el propietario y los permisos de directorio y subdirectorios con el siguiente comando. Cambié el propietario del directorio del proyecto web en /usr/share/nginx/html al usuario root usando:

chown root /usr/share/nginx/html/mywebprojectdir/*

Y finalmente cambió los permisos de ese directorio y subdirectorios usando:

chmod 755 /usr/share/nginx/html/mywebprojectdir/*

NOTA : si se niega, puede usar sudo

Recientemente decidí cambiar de Apache2 a Nginx. Instalé Nginx en mi servidor CentOS y configuré una configuración básica. Cuando intenté cargar mi sitio en el navegador (FF / Chrome) noté que el archivo css no está cargado. Revisé la consola de error y vi este mensaje:

Error: The stylesheet http://example.com/style.css was not loaded because its MIME type, "text/html", is not "text/css".

Revisé la configuración de Nginx y todo parece estar bien:

http { include /etc/nginx/mime.types; .......... }

El tipo de mime para archivos css está configurado correctamente en /etc/nginx/mime.types.

text/css css;

Todo parece estar bien configurado, pero mis archivos css aún no están cargados. No tengo ninguna explicación.

Otra cosa que vale la pena mencionar. Inicialmente instalé Nginx usando repositorios epel y obtuve una versión anterior: 0.8 ... Me pareció que mi problema era un error en esa versión, así que desinstalé la versión 0.8, añadí el repositorio nginx a yum y luego instalé la última versión: 1.0. 14. Pensé que la nueva versión resolvería mi problema, pero desafortunadamente no, así que me estoy quedando sin ideas.

Agradezco cualquier ayuda.

Archivos de configuración:

/etc/nginx/nginx.conf

user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main ''$remote_addr - $remote_user [$time_local] "$request" '' ''$status $body_bytes_sent "$http_referer" '' ''"$http_user_agent" "$http_x_forwarded_for"''; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; }

/etc/nginx/conf.d/default.conf

server { listen 80; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/log/host.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm index.php; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name; include fastcgi_params; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ /.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ /.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache''s document root # concurs with nginx''s one # #location ~ //.ht { # deny all; #} }

/etc/nginx/mime.types

types { text/html html htm shtml; text/css css; text/xml xml; image/gif gif; image/jpeg jpeg jpg; application/x-javascript js; application/atom+xml atom; application/rss+xml rss; .......................................... other types here .......................................... }


Encontré una solución en la web. Agregué a /etc/nginx/conf.d/default.conf lo siguiente:

location ~ /.css { add_header Content-Type text/css; } location ~ /.js { add_header Content-Type application/x-javascript; }

El problema ahora es que una solicitud a mi archivo css no se redirige bien, como si la raíz no estuviera configurada correctamente. En error.log veo

2012/04/11 14:01:23 [error] 7260 # 0: * 2 open () "/etc/nginx//html/style.css"

Entonces, como segunda solución, agregué la raíz a cada ubicación definida. Ahora funciona, pero parece un poco redundante. ¿No se hereda raíz de / ubicación?


Me encontré con este problema también. Me confundió hasta que me di cuenta de lo que estaba mal:

Tu tienes esto:

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

Tu quieres esto:

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

parece haber un error en nginx o una deficiencia en los documentos (este podría ser el comportamiento previsto, pero es extraño)


Poniendo el include /etc/nginx/mime.types; en location / { lugar de en http { resolví el problema para mí.


Seguí algunos consejos del resto de las respuestas y descubrí que estas acciones raras me ayudaron (al menos en mi caso).

1) Agregué al bloque del servidor lo siguiente:

location ~ /.css { add_header Content-Type text/css; }

Recargué nginx y obtuve esto en error.log:

18/06/18 18:32:29 [error] 3430 # 3430: * 169 open () "/etc/nginx/html/css/mysite.css" ha fallado (2: No hay tal archivo o directorio)

2) Eliminé las filas, recargué nginx y obtuve css de trabajo. No puedo explicar lo que sucedió porque mi archivo conf llegó a ser como antes.

Mi caso estaba limpio xubuntu 14.04 en VirtualBox, nginx / 1.9.2, una fila 127.51.1.1 mysite en / etc / hosts y bastante simple /etc/nginx/nginx.conf con un bloque de servidor:

user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; server { listen 80; server_name mysite; location / { root /home/testuser/dev/mysite/; } } }


Tuve el mismo problema en Windows. Lo resolví agregando: include mime.types; en http { en mi archivo nginx.conf. Entonces todavía no funcionó ... así que miré el archivo error.log y noté que intentaba cargar los archivos .css y javascript desde la ruta del archivo pero con una carpeta / http entre ellos. Ejemplo: mi .css estaba en: "C: / Users / pc / Documents / nginx-server / player-web / css / index.css" y lo tomaba de: "C: / Users / pc / Documents / nginx" -server / html /player-web/css/index.css "Así que cambié mi carpeta de jugador-web dentro de una carpeta html y funcionó;)


agregar esto a su archivo ngnix conf

add_header Content-Security-Policy "default-src ''self''; script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' https://ssl.google-analytics.com https://assets.zendesk.com https://connect.facebook.net; img-src ''self'' https://ssl.google-analytics.com https://s-static.ak.facebook.com https://assets.zendesk.com; style-src ''self'' ''unsafe-inline'' https://fonts.googleapis.com https://assets.zendesk.com; font-src ''self'' https://themes.googleusercontent.com; frame-src https://assets.zendesk.com https://www.facebook.com https://s-static.ak.facebook.com https://tautt.zendesk.com; object-src ''none''";


style.css realidad se está procesando a través de fastcgi debido a su directiva de "ubicación /". Entonces fastcgi es el que sirve el archivo ( nginx > fastcgi > filesystem ), y no el sistema de archivos directamente ( nginx > filesystem ).

Por una razón que todavía tengo que descubrir (estoy seguro de que hay una directiva en algún lugar), NGINX aplica el tipo de letra mime text/html a todo lo que se atiende desde fastcgi, a menos que la aplicación backend explícitamente indique lo contrario.

El culpable es este bloque de configuración específicamente:

location / { root /usr/share/nginx/html; index index.html index.htm index.php; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name; include fastcgi_params; }

Debería ser:

location ~ /.php$ { # this line root /usr/share/nginx/html; index index.html index.htm index.php; fastcgi_split_path_info ^(.+/.php)(/.+)$; #this line fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # update this too include fastcgi_params; }

Este cambio asegura que solo se soliciten archivos *.php desde fastcgi. En este punto, NGINX aplicará el tipo MIME correcto. Si tiene alguna reescritura de URL, debe manejar esto antes de la directiva de ubicación ( location ~/.php$ ) para que la extensión correcta se derive y se enrute correctamente a fastcgi.

Asegúrese de consultar este artículo sobre consideraciones de seguridad adicionales con try_files . Dadas las implicaciones de seguridad, considero que esto es una característica y no un error.