Nginx Unable to Load CSS Files: Addressing MIME Type Mismatch
When transitioning from Apache2 to Nginx, users may encounter an issue where CSS files fail to load. This occurs when the MIME type identified by Nginx for CSS files differs from the actual "text/css" type.
Diagnosis and Solution
Despite proper configuration of the MIME types file (/etc/nginx/mime.types), which includes the line "text/css css;", CSS files remain unloaded. This is often caused by the placement of the include statement for mime.types.
To resolve the issue, the include statement should be moved from the global http { block to the location / { block within the default site configuration (/etc/nginx/conf.d/default.conf). The revised configuration should resemble the following:
server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm index.php; include /etc/nginx/mime.types; # Moved from http { block fastcgi_pass 127.0.0.1:9000; # Additional parameters... }
Understanding the Change
By placing the include statement within the location block, the MIME types defined in /etc/nginx/mime.types become applicable to the specific location, which is the root directory for the default site. This ensures that Nginx correctly recognizes the MIME type of CSS files and serves them accordingly.
Additional Considerations
The above is the detailed content of Why Doesn\'t My Nginx Server Load CSS Files After Switching from Apache2?. For more information, please follow other related articles on the PHP Chinese website!