Magento 2-Installation:css/js/images wird nicht geladen
-
12-12-2019 - |
Frage
Ich versuche, Magento2 (0.1.0-alpha107) auf meinem lokalen Host mit OSX 10.10 zu installieren + brew installiert php-fpm + mysql + nginx.
Schritte, die ich zur Installation befolgt habe:
mkdir /path/to/magento2 && cd /path/to/magento2
git clone git@github.com:magento/magento2.git .
composer install
cd setup
composer install
php -f index.php install --base_url=http://magento2alpha.dev/ --backend_frontname=admin --db_host=localhost --db_name=magento2alpha --db_user=root --db_pass=root --admin_firstname=Raj --admin_lastname=KB --admin_email=magepsycho@gmail.com --admin_username=admin --admin_password=pass123 --language=en_US --currency=USD --timezone=America/Chicago
Bisher hat alles super funktioniert.Aber wenn Sie das Frontend laden: http://magento2alpha.dev/Es wird nur einfacher Text angezeigt (d. h.css/images/js fehlen).
View source gibt Ihnen den Pfad wie http://magento2alpha.dev/pub/static/frontend/Magento/blank/en_US/[css/images]/[css/images Datei], die zur 404-Seite führte
Meine Nginx-Conf-Datei sieht so aus:
server {
listen 80;
server_name magento2alpha.dev;
root /Users/Raj/Sites/magento/magento2alpha;
location /setup {
try_files $uri $uri/ @setuphandler;
}
# Rewrite Setup's Internal Requests
location @setuphandler {
rewrite /setup /magento/magento2alpha/setup/index.php;
}
location / {
index index.php index.html;
try_files $uri $uri/ @handler;
}
# Rewrite Internal Requests
location @handler {
rewrite / /magento/magento2alpha/index.php;
}
# Rewrite magento2 static files
#location /pub/static {
# rewrite ^/pub/static/(.*)$ /magento/magento2alpha/pub/static.php?resource=$1? last;
#}
location /pub/static {
try_files $uri $uri/ @static;
}
location @static {
rewrite ^/pub/static/(.*)$ /magento/magento2alpha/pub/static.php?resource=$1? last;
}
#location ~ .php/ {
# rewrite ^(.*.php)/ $1 last;
#}
location ~ \.php$ { ## Execute PHP scripts
try_files $uri =404;
expires off;
fastcgi_pass 127.0.0.1:9000;
fastcgi_read_timeout 900s;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
## Magento 2 Developer mode
fastcgi_param MAGE_MODE "developer";
}
}
Ich vermute, dass das Problem im Umschreiben der statischen Dateien liegt.Aber das ist es, was ich dem Github entnommen habe, der nicht funktioniert.Gibt es eine Problemumgehung?
Lösung 2
Schließlich muss ich meine Nginx-Conf-Datei ändern, damit sie wie folgt funktioniert:
(REF: https://github.com/magento/magento2/issues/802)
server {
listen 80;
server_name magento2alpha.dev;
root /Users/Raj/Sites/magento/magento2alpha;
location /setup {
try_files $uri $uri/ @setuphandler;
}
# Rewrite Setup's Internal Requests
location @setuphandler {
rewrite /setup /setup/index.php;
}
location / {
index index.php index.html;
try_files $uri $uri/ @handler;
}
# Rewrite Internal Requests
location @handler {
rewrite / /index.php;
}
location /pub/static {
try_files $uri $uri/ @static;
}
location @static {
rewrite ^/pub/static/(.*)$ /pub/static.php?resource=$1? last;
}
location ~ \.php$ { ## Execute PHP scripts
try_files $uri =404;
expires off;
fastcgi_pass 127.0.0.1:9000;
fastcgi_read_timeout 900s;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
## Magento 2 Developer mode
fastcgi_param MAGE_MODE "developer";
fastcgi_param PHP_FLAG "session.auto_start=off \n suhosin.session.cryptua=off";
fastcgi_param PHP_VALUE "memory_limit=256M \n max_execution_time=18000";
}
}
Eine Sache, die mir aufgefallen ist, ist:Wenn Sie eine virtuelle Host-spezifische Konfiguration in Nginx erstellen conf.d
ist ressourcenintensiver und langsamer als das Einhalten sites-enabled
dir.
[Bearbeiten]
Tut mir leid, xdebug hat die Langsamkeit verursacht, nicht die Nginx-Konfiguration.
Andere Tipps
Jede darin angeforderte Datei /pub/static
das derzeit nicht existiert, muss über Magento weitergeleitet werden.Dies geschieht derzeit durch /pub/static.php
.
Sie können diese Neufassung in sehen /pub/static/.htaccess
RewriteEngine On
# Remove signature of the static files that is used to overcome the browser cache
RewriteRule ^version.+?/(.+)$ $1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* ../static.php?resource=$0 [L]
Wenn Sie sich Ihre Nginx-Konfiguration ansehen, haben Sie Folgendes auskommentiert:
# Rewrite magento2 static files
#location /pub/static {
# rewrite ^/pub/static/(.*)$ /magento/magento2alpha/pub/static.php?resource=$1? last;
#}
Vermutlich würde es das Problem lösen, diese Zeilen ausführbar zu machen. Ich bin mit der Nginx-Konfiguration nicht sehr vertraut, aber so etwas in der Art könnte auch Arbeit:
location / {
if (!-e $request_filename){
rewrite ^(.*)$ /../static.php?resource=$0 last;
}
}
Genommen von: https://magento.stackexchange.com/a/64808/3326
Wenn Magento 2 nicht im Produktionsmodus ist, versucht es, Symlinks für einige statische Ressourcen zu erstellen.Sie können dieses Verhalten ändern, indem Sie Folgendes tun.
Aufmachen app/etc/di.xml
und finde die virtualType name="developerMaterialization"
Abschnitt.In diesem Abschnitt finden Sie einen Artikel name="view_preprocessed"
das geändert oder gelöscht werden muss.Sie können es ändern, indem Sie den Inhalt ändern Magento\Framework\App\View\Asset\MaterializationStrategy\Symlink
Zu Magento\Framework\App\View\Asset\MaterializationStrategy\Copy
Löschen Sie die Dateien darunter pub/static
um alle vorhandenen Symlinks zu entfernen.Möglicherweise möchten Sie darauf achten, die Datei nicht zu löschen .htaccess
Datei.
Dies sollte Ihren Fehler mit dem Symlink beheben.
Das ist bisher die beste Antwort
Sie können es ändern, indem Sie den Inhalt ändern
Magento\Framework\App\View\Asset\MaterializationStrategy\Symlink
ZuMagento\Framework\App\View\Asset\MaterializationStrategy\Copy
Ich hatte ein ähnliches Problem, nachdem ich die Magento 2 installiert habe, und stellte fest, dass die Installation die statischen Dateien tatsächlich nicht bereitstellt.Ich habe 404 für viele Admin-Dateien erhalten, einschließlich Bootstrap usw., um ein Befehl von der Site-Root zu beheben, um die statische Dateibereitstellung zu erzwingen: generasacodicetagpre.
Dies wird statische Vermögenswerte für Frontend-Themen und Adminhtml-Backend regeln.