Waarom Laadt Nginx CSS-bestanden Niet?

Gepubliceerd 1 september 2024

Probleem: Nginx Laadt CSS-bestanden Niet

Wanneer Nginx CSS-bestanden niet laadt, zien websites er ongeopgemaakt en defect uit. Dit probleem kan de gebruikerservaring en functionaliteit van een webapplicatie beïnvloeden, aangezien CSS nodig is voor lay-out en ontwerp.

Veelvoorkomende Oorzaken van CSS-laadfouten in Nginx

Onjuiste MIME-typeconfiguratie

Juiste MIME-type-instellingen helpen Nginx om CSS-bestanden correct te serveren. MIME-types vertellen browsers hoe bestandstypen te interpreteren. Wanneer CSS-bestanden niet het juiste MIME-type hebben, laden browsers ze mogelijk niet, wat resulteert in ongeopgemaakte webpagina's.

Om de MIME-typeconfiguratie in Nginx te controleren:

  1. Open het hoofd Nginx-configuratiebestand, meestal op /etc/nginx/nginx.conf.
  2. Zoek de regel die het mime.types-bestand bevat:
    include /etc/nginx/mime.types;
  3. Bevestig dat deze regel aanwezig is en niet als commentaar is gemarkeerd.
  4. Open het mime.types-bestand en controleer op het CSS MIME-type:
    text/css css;

Tip: Test MIME-typeconfiguratie

Om te testen of uw MIME-typeconfiguratie correct is, gebruikt u het curl-commando met de -I optie om de Content-Type header van uw CSS-bestand te controleren:

curl -I http://uwdomein.com/pad/naar/uw/style.css

De respons zou een regel moeten bevatten zoals:

Content-Type: text/css

Als het een ander inhoudstype toont, moet uw MIME-typeconfiguratie worden aangepast.

Verkeerd geconfigureerde serverblokken

Serverblokken in Nginx definiëren hoe de server verzoeken voor domeinen of IP-adressen afhandelt. Ze beïnvloeden hoe bestanden, inclusief CSS, aan clients worden geserveerd.

Problemen met location-richtlijnen in serverblokken zijn onder andere:

  1. Verkeerde hoofdmap: De root-richtlijn wijst mogelijk naar de verkeerde map, waardoor Nginx CSS-bestanden niet kan vinden.
  2. Verkeerd geplaatste richtlijnen: Sommige richtlijnen, zoals de include-instructie voor mime.types, bevinden zich mogelijk in een location-blok in plaats van het http-blok.
  3. Strikte machtigingen: Location-blokken hebben mogelijk regels die toegang tot CSS-bestanden blokkeren.

Om deze problemen op te lossen, bekijkt u uw serverblok-configuratie en controleert u of de location-richtlijnen zijn ingesteld om statische bestanden zoals CSS te serveren.

Problemen met CSS-laden in Nginx Oplossen

Nginx-configuratiebestanden Controleren

Om problemen met CSS-laden in Nginx op te lossen, bekijkt u het hoofdconfiguratiebestand, nginx.conf. Dit bestand bevindt zich meestal op /etc/nginx/nginx.conf. Zoek naar deze belangrijke elementen:

  1. Het http-blok met de include-instructie voor mime.types.
  2. Aangepaste serverblokken of includes voor andere configuratiebestanden.

Controleer vervolgens de serverblok-configuratie. Deze staat vaak in aparte bestanden in de /etc/nginx/conf.d/ map. Controleer in het serverblok:

  1. De root-richtlijn, die de map voor uw websitebestanden instelt.
  2. De location-blokken, vooral die welke statische bestanden zoals CSS afhandelen.

Hier is een voorbeeld van een basisserverblok-configuratie:

server {
    listen 80;
    server_name example.com;
    root /var/www/example.com;

    location / {
        try_files $uri $uri/ =404;
    }

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

Tip: Controleer Bestandsmachtigingen

Zorg ervoor dat uw CSS-bestanden de juiste machtigingen hebben. Nginx heeft leestoegang nodig om deze bestanden te serveren. U kunt de juiste machtigingen instellen met:

chmod 644 /pad/naar/uw/css/bestand.css

MIME-types Verifiëren

Het mime.types-bestand is belangrijk voor de juiste bestandsafhandeling in Nginx. Dit bestand koppelt bestandsextensies aan MIME-types en vertelt browsers hoe verschillende bestandstypen te interpreteren.

Om MIME-types te verifiëren:

  1. Open het mime.types-bestand, meestal op /etc/nginx/mime.types.
  2. Zoek de regel voor CSS-bestanden:
    text/css css;
  3. Zorg ervoor dat deze regel aanwezig is en niet als commentaar is gemarkeerd.

Om ervoor te zorgen dat CSS-bestanden correct zijn gekoppeld:

  1. Controleer of de include-instructie voor mime.types zich in het http-blok van uw nginx.conf-bestand bevindt.
  2. Verifieer dat uw CSS-bestanden de .css-extensie hebben.
  3. Voeg indien nodig een specifiek location-blok voor CSS-bestanden toe in uw serverconfiguratie:
    location ~* \.css$ {
       add_header Content-Type text/css;
    }

Na het maken van wijzigingen test u uw configuratie en herlaadt u Nginx:

nginx -t
sudo systemctl reload nginx

Deze stappen helpen u veelvoorkomende problemen met CSS-laden in Nginx te vinden en op te lossen.

Oplossingen voor CSS-laadproblemen in Nginx

MIME-type-instellingen Corrigeren

Om MIME-types voor CSS-bestanden in Nginx in te stellen:

  1. Open het mime.types-bestand:

    sudo nano /etc/nginx/mime.types
  2. Zoek of voeg deze regel toe:

    text/css css;
  3. Sla het bestand op en sluit af.

  4. Open het hoofd Nginx-configuratiebestand:

    sudo nano /etc/nginx/nginx.conf
  5. Voeg deze regel toe in het http-blok:

    include /etc/nginx/mime.types;
  6. Sla het bestand op en sluit af.

Voorbeeld van CSS MIME-typeconfiguratie in mime.types:

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

Tip: Controleer MIME-types met curl

Om te verifiëren of uw server het juiste MIME-type voor CSS-bestanden verzendt, gebruikt u het curl-commando:

curl -I http://uw-website.com/pad/naar/uw/style.css

Zoek naar de "Content-Type" header in de respons. Het zou "text/css" moeten tonen voor CSS-bestanden.

Serverblok-configuratie Aanpassen

Om location-richtlijnen voor CSS-bestanden te wijzigen:

  1. Open uw serverblok-configuratiebestand:

    sudo nano /etc/nginx/sites-available/uw_site
  2. Voeg het location-blok voor CSS-bestanden toe of wijzig het:

    location ~* \.css$ {
       add_header Content-Type text/css;
       expires 30d;
    }
  3. Controleer of de root-richtlijn naar de juiste map wijst:

    root /pad/naar/uw/website;
  4. Sla het bestand op en sluit af.

Voorbeeld van een serverblok-instelling voor CSS-bestanden:

server {
    listen 80;
    server_name example.com;
    root /var/www/example.com;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~* \.css$ {
        add_header Content-Type text/css;
        expires 30d;
    }

    location ~* \.(js|jpg|jpeg|png|gif|ico)$ {
        expires 30d;
    }
}

Na deze wijzigingen test u uw Nginx-configuratie:

sudo nginx -t

Als de test slaagt, herlaadt u Nginx om de wijzigingen toe te passen:

sudo systemctl reload nginx

Deze wijzigingen zouden de meeste CSS-laadproblemen in Nginx moeten oplossen.