Ich habe gerade einen WordPress-Blog unter einem /blog-Verzeichnis innerhalb einer Rails-App installiert, die auf Unicorn und Nginx läuft, und meine Stylesheets und Skripte werden nicht richtig im Browser geladen, wenn ich zu meinen domain.com/blog-Seiten gehe. Die Chrome-Konsole gibt mir den folgenden Fehler:
- Ressource als Stylesheet interpretiert, aber mit MIME-Typ text/html übertragen
- Ressource wird als Skript interpretiert, aber mit dem MIME-Typ text/html übertragen
Ich habe versucht, dies herauszufinden und viele Lösungen hier auf SO ausprobiert, komme aber immer noch nicht durch … scheint, als müsste etwas an meiner Nginx-Konfiguration geändert werden, insbesondere für den Blog/PHP-Speicherort. Hier ist meine Konfig:
upstream unicorn {
server unix:/tmp/unicorn.domain.sock fail_timeout=0;
}
server {
server_name www.domain.com;
return 301 $scheme://domain.com$request_uri;
}
server {
listen 80 default deferred;
server_name domain.com;
root /home/dcs/htdocs/domain/current/public;
access_log /home/dcs/htdocs/domain/log/access.log;
error_log /home/dcs/htdocs/domain/log/error.log;
location /blog {
try_files $uri $uri/ /blog/index.php?$args;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME home/dcs/htdocs/domain/$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
location ^~ /assets/ {
gzip_static on;
expires max;
add_header Cache-Control public;
}
try_files $uri/index.html $uri @unicorn;
location @unicorn {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://unicorn;
}
error_page 500 502 503 504 /500.html;
keepalive_timeout 10;
}
Nach langem Suchen bin ich endlich fündig geworden diese Lösung.
Anscheinend war das Problem, dass ich der App innerhalb von „location /blog“ einen Root hinzufügen und den „location ~ .php$“ innerhalb von /blog verschachteln musste. Hier ist meine Nginx-Konfiguration, die jetzt für einen WordPress-Blog in einer Rails-App mit Unicorn funktioniert, falls jemand anderes sie braucht:
upstream unicorn {
server unix:/tmp/unicorn.domain.sock fail_timeout=0;
}
server {
server_name www.domain.com;
return 301 $scheme://domain.com$request_uri;
}
server {
listen 80 default deferred;
server_name domain.com;
root /home/dcs/htdocs/domain/current/public;
access_log /home/dcs/htdocs/domain/log/access.log;
error_log /home/dcs/htdocs/domain/log/error.log;
location /blog {
root /home/dcs/htdocs/domain;
index index.php;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME home/dcs/htdocs/domain/$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
}
location ^~ /assets/ {
gzip_static on;
expires max;
add_header Cache-Control public;
}
try_files $uri/index.html $uri @unicorn;
location @unicorn {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://unicorn;
}
error_page 500 502 503 504 /500.html;
keepalive_timeout 10;
}
Stellen Sie sicher, dass Sie eine haben types
Direktive, die in Ihrer nginx-Konfiguration definiert ist.
Syntax: types { ... }
Default:
types {
text/html html;
image/gif gif;
image/jpeg jpg;
}
Context: http, server, location
Ordnet Dateinamenerweiterungen MIME-Antworttypen zu. Bei Erweiterungen wird die Groß- und Kleinschreibung nicht beachtet. Mehrere Erweiterungen können einem Typ zugeordnet werden, zum Beispiel:
types {
text/css css;
application/javascript js;
application/json json;
}
Quelle: http://nginx.org/en/docs/http/ngx_http_core_module.html#types
13938500cookie-checkNginx – WordPress-Blog auf Rails lädt Stile und Skripte mit dem Mime-Typ text/htmlyes