Magento 2 CSS e JavaScript non vengono caricati dalla cartella corretta


35

Spero che qualcuno qui possa aiutare. Sto tentando di installare ed eseguire Magento 2 su WAMP su una macchina Windows 7 con scarso successo.

Dopo aver saltato attraverso i tanti e vari cerchi per caricare il sito, ora mi trovo di fronte a 404 risposte e nessuno stile o caricamento javascript.

La specifica è la seguente:

  • I campioni Magento-CE-2.0.0 +
  • Apache 2.4.9
  • PHP 5.5.12
  • MySQL 5.6.17

Quando guardo la console del browser tra gli errori ci sono tentativi di accedere a file che non si trovano nella cartella pub / static. La cartella "frontend" viene caricata e la maggior parte dei file è presente. Ho notato tuttavia che alcuni file CSS non sono presenti.

Eseguendo il comando deploy di PHP

php bin/magento setup:static-content:deploy

che è menzionato in altri post ottengo l'errore di seguito. Non sono sicuro di come porre rimedio a questo?

Errore irreversibile: dimensione della memoria consentita di 134217728 byte esauriti (tentato di allocare 64 byte) in C: \ wamp \ www \ magento \ vendor \ oyejorge \ less.php \ lib \ Less \ Visitor.php sulla riga 45

Qualsiasi aiuto sarà molto apprezzato.

AGGIORNARE

Ho aumentato il margine di memoria di PHP ed eseguito nuovamente lo script di distribuzione php. Questa volta non ha commesso errori ed eseguito completamente. Tuttavia, è ancora presente lo stesso problema descritto sopra. Il sito viene caricato, ma ogni tentativo di caricare qualsiasi pagina o risorsa genera un errore 404 pagina non trovata senza stile applicato.

Di seguito, vedi gli errori in Chrome Inspector

inserisci qui la descrizione dell'immagine


@TejabhagavanKollepara Questa domanda è stata posta per prima, è ben formata, ha buone risposte, quindi IMO l'altra domanda è un candidato ingannevole, non questo ... A proposito, se la bandiera sull'altra domanda come duplicata di questa è stata rifiutata , non è necessario contrassegnare questa domanda come duplicata dell'altra per cercare di ottenere lo stesso.
7ochem

Vedi anche la risposta di SA: una nuova installazione di Magento è in modalità "predefinita" (non "produzione") e non ha bisogno del contenuto statico distribuito, che è ciò che ti viene chiesto di fare in tutte le altre risposte.
Jānis Elmeris,

Risposte:


50

SOLUZIONE # 1 (SE VUOI MODIFICARE IL FILE XML)

Vorrei che scarichi Magento 2 zip magentocommerce.com/downloadcon i dati di esempio, crei un nuovo db in phpmyadmin , estrai zip nella cartella htdocs . Installa Magento 2 ma non usa localhost, usa 127.0.0.1 nell'URL del negozio e nell'URL dell'amministratore. Dopo una corretta installazione NON eseguire magento.

Ora cancelleremo / elimineremo le cache e le sessioni di Magento 2. Vai ai seguenti percorsi ed elimina tutto:

ROOT > var > cache > *DELETE ALL*
ROOT > var > page_cache > *DELETE ALL*
ROOT > var > session > *DELETE ALL*

Quando Magento 2 non è in modalità di produzione, proverà a creare collegamenti simbolici per alcune risorse statiche sul server locale. Dobbiamo cambiare quel comportamento di Magento 2 andando a modificare il ROOT > app > etc > di.xmlfile. Apri di.xmlnel tuo editor di codice preferito, trova la virtualType name="developerMaterialization"sezione. In quella sezione di seguito troverai un oggetto <item name="view_preprocessed" xsi:type="object">che deve essere modificato. Puoi modificarlo cambiando il seguente contenuto:

Magento\Framework\App\View\Asset\MaterializationStrategy\Symlink

A:

Magento\Framework\App\View\Asset\MaterializationStrategy\Copy

Ora ultimo passaggio, elimina anche i vecchi file generati in ROOT > pub > static > DELETE ALL EXCEPT .HTACCESS

SOLUZIONE # 2

Installa Composer. Ora vorrei che scarichi Magento 2 zip da magentocommerce.com/download, crei un nuovo db in phpmyadmin , estrai zip nella cartella htdocs . Installa Magento 2 ma non usa localhost, usa 127.0.0.1 nell'URL del negozio e nell'URL dell'amministratore. Dopo una corretta installazione NON eseguire magento.

Ora verificheremo l'installazione di Composer, la distribuzione di contenuto statico, la cancellazione / svuotamento della cache Magento e la reindicizzazione dei blocchi Magento 2. Per eseguire tutte le azioni sopra, premere il tasto WINDOWS + R per aprire la finestra di dialogo ESEGUI e digitare "cmd" per aprire il prompt dei comandi.

Digita " cd PATH_TO_YOUR_MAGENTO2_FILES " per accedere alla directory ROOT di Magento 2.

Ora per verificare l'installazione di Composer nella directory sopra, digitare " installazione di composer ".

Se si verificano errori in questo passaggio, controllare l'installazione di Composer

In questo passaggio, stiamo configurando contenuti statici da distribuire nel nostro negozio Magento. Per eseguire ciò, digitare " php bin / magento setup: static-content: deploy ".

Per coloro che sono su Magento 2.2.x

php bin/magento setup:static-content:deploy -f

Se si verificano errori, controllare la variabile di ambiente PHP.EXE e PHP.INI

Svuota / Svuota la cache di Magento digitando " php bin / magento cache: flush " in CMD.

Infine, per Reindex Magento Static Blocks digitare " php bin / magento indexer: reindex ".

Hai completato con successo l'installazione di Magento 2.


4
Anche in php.ini cambia max_execution_time su 500, memory_limit su 2048M, post_max_size su 2048M, upload_max_filesize su 2048M e max_file_uploads su 2048.
Fayyaz Khattak

Grazie per la tua rapida risposta. Ho apportato queste modifiche ma non hanno avuto alcun effetto. Ho riavviato il server WAMP dopo aver apportato le modifiche. Ho modificato la domanda per mostrare gli errori che posso vedere nella
finestra di

Oh, mi dispiace menzionare un'altra cosa, prima cancellare tutta la cache e la sessione, apportare modifiche di.xml ed anche eliminare tutto da ROOT> pub> statico> ELIMINA TUTTO SALVO .HTACCESS
Fayyaz Khattak

1
@MagenX Questa è l'opinione di ogni persona quale strumento preferisce maggiormente usare. Ai tuoi occhi, critichi tutto come un martello piuttosto che condividere la tua visione della soluzione.
Fayyaz Khattak,

1
La soluzione n. 2 ha funzionato come un incantesimo, grazie per avermi risparmiato ore se non giorni, affrontando questo problema!
Jonathan Marzullo,

11

devi solo aggiornare il file apache2.conf.

Su Ubuntu 16.04

  1. Apri e modifica il file /etc/apache2/apache2.conf
  2. Passare al punto nel file apache2.conf <Directory /var/www/>
  3. Cambia "AllowOverride None"in"AllowOverride All"
  4. Salva il file
  5. Ricomincia apache2 -> sudo service apache2 restart

È stata così difficile trovare questa risposta! Ovunque le persone suggeriscono di (ri) distribuire contenuto statico anche se una nuova installazione di Magento è in modalità "predefinita" (non "produzione") e non necessita del contenuto statico distribuito.
Jānis Elmeris,

10

Se stai affrontando un problema di caricamento della pagina css e js dopo l'installazione in magento2

si prega di seguire il seguente passaggio:

apri il terminale e passa a magento web root

 $ cd / var / www / html / magento2 

Passo 1.

 $ php bin / magento setup: static-content: deploy

Passo 2.

$ php bin / magento indexer: reindex

Passaggio 3.

assicurati che apache "rewrite_module" sia abilitato e quindi riavvia il server

Passaggio 4.

$ chown -R www-data: www-data / var / www / html / magento2 

Passaggio 5.

 $ chmod -R 777 / var / www / html / magento2 

Passaggio 6.

elimina la cartella cache in var / cache

Il passaggio sopra funziona. Spero che questo funzioni anche per te.

Fammi sapere se c'è qualche problema. :)

http://gotechnies.com/css-javascript-files-loading-magento-2-installation/


1
come eseguire questi comandi in Windows?
Hassan ALi,

1
Funziona per me solo per i primi 3 passaggi. :)
hln,

6
Non è così intelligente impostare l'autorizzazione su 777 per tutti i file sul server.
Chris Gudn,

1
Non sono davvero impressionato dal passaggio in cui concedi l'autorizzazione completa di lettura e scrittura all'intera installazione di Magento.
ciclico

1
impostare i permessi su 777 è un cattivo consiglio ma speriamo che qualsiasi amministratore di sistema lo sappia meglio.
John Hall,

6

Per me è stato semplicemente perché mod_rewrite non era abilitato.

sudo a2enmod rewrite

e

service apache2 restart


1
soluzione perfetta !!! +1 :)
SagarPPanchal,

6

Ho avuto lo stesso problema risolto aggiungendo

sudo nano /etc/apache2/apache2.conf

Modifica questo

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

a questa

<Directory /var/www/html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

dovresti anche abilitare il mod_rewritemodulo apache2 e insall certificati ssl:

sudo a2enmod ssl

sudo a2ensite default-ssl

sudo a2enmod rewrite

sudo service apache2 restart

1
Questo, oltre a rm -rf var / * ha funzionato per me. Posto fantastico e buono.
Jon Holland,

6

Ecco la soluzione più semplice se mostra il nome della versione nel percorso css

come: pub / statico / versione323334 /

quindi esegui questa query in mysql

INSERT INTO core_config_data (path, value) VALUES ('dev/static/sign', 0)
ON DUPLICATE KEY UPDATE value = 0;

dopodiché svuota la cache di configurazione

 bin/magento cache:clean config

puoi anche disabilitare la versione del file statico dall'amministratore

inserisci qui la descrizione dell'immagine


4
Questo ha funzionato per me grazie. Tuttavia, è necessario correggere la query INSERT INTO core_config_data (path, value) VALUES ('dev / static / sign', 0);
Aftab Naveed,

cos'è percorso e valori
zus

percorso, valore sono i campi nome ho già definito i valori (dev / static / sign, 0), basta eseguire questo sql dovrebbe funzionare
Surendra Kumar Ahir

soluzione perfetta !!! fatto il mio giorno :) +1
SagarPPanchal

5
  1. Prova a disabilitare la cache se non l'hai disabilitata prima
  2. Assicurati di avere l'ultima versione di Magento con codice pulito. Se modifichi o personalizzi qualcosa, assicurati di correggere tutti gli errori.
  3. Esegui diversi comandi di seguito può aiutarti.

    php bin/magento indexer:reindex

    php bin/magento cache:flush

Rimuovi le cartelle in

  • pub/static/frontend/*
  • var/cache
  • var/view_preprocessed/*

  • php bin/magento setup:static-content:deploy


3

Nel mio caso ho accidentalmente cancellato .htaccessfile ROOT/pub/e ROOT/pub/staticcartelle. Quindi inizia a funzionare quando lo ripristino .


2

Risolto !!!

Esegui i seguenti comandi nell'interfaccia CLI della cartella principale di Magento2:

php bin/magento setup:static-content:deploy

php bin/magento indexer:reindex

Quindi eliminare la cartella var con questo comando nella radice di magento2.

rm -rf var/*

Quindi aggiorna la tua home page e il pannello di amministrazione. Sta funzionando !!!!! Freddo !!!!


1

Ho avuto lo stesso problema con 404s. L'ho risolto assicurandomi che la direttiva VirtualHost in Apache fosse corretta. Ecco il mio VirtualHost:

<VirtualHost *:80>
    DocumentRoot /var/www/magento2
    ServerName magento-ce-2.1.6
    <Directory "/var/www/magento2">
        Options Indexes FollowSymLinks
        AllowOverride All
    </Directory>
</VirtualHost>

E puoi anche dire cosa c'era che non andava prima? Altrimenti questo esempio non sarà di grande aiuto per gli altri.
Fabian Schmengler,


0

Ho avuto lo stesso identico problema dell'OP ed è stato semplicemente perché ho impostato la mia locale su en_AU, quindi l'utilizzo del comando deploy predefinito ha generato solo il en_UScontenuto. Devi aggiungere la locale che stai effettivamente usando alla EN del comando, in questo modo:

php bin/magento setup:static-content:deploy en_US en_AU

0

Ho provato le soluzioni sopra. Ma non mi ha aiutato. Nonostante, ho usato gli stessi comandi che hanno menzionato con i cambi di sequenza. Loro sono,

  1. cancella cache, composer_home, generazione, log, page_cache, tmp e view_preprocessed dalla directory var

  2. eseguire i seguenti comandi uno per uno.

indicizzatore php bin / magento: reindex

php bin / magento cache: flush

php bin / magento setup: static-content: deploy

Spero che questo possa aiutare qualcuno come me.


0

Disabilita mod_pagespeed

Pagespeed elabora un'istanza "memorizzata nella cache" del contenuto con un'abbreviazione, ovvero se questo è il file normale.

image.css

Sarà impostato come segue.

image.pagespeed.css

Quanto sopra è un esempio molto semplice, ma già puoi vedere dove si trova il problema sottostante. Ciò può causare un caricamento improprio di contenuto statico a causa della mancata individuazione tramite il percorso principale, a causa del fatto che questi sono temporaneamente. Questo è un problema ereditario con Mod_Pagespeed, ergo perché consigliamo di tenerlo disabilitato.

la risposta del rapido supporto delle comete, e ha risolto il mio problema


0

Per Ubuntu 18.04 (Bionic). Ho usato i seguenti passi per caricare correttamente i file statici.

Al termine dell'installazione:

Assicurati che il modulo apache 'riscrivi' sia abilitato, altrimenti procedi nel seguente modo

  • cd /etc/apache2
  • esegui comando a2enmod rewrite
  • sudo vi /etc/apache2/apache2.conf

Quindi apportare le seguenti modifiche

Modifica da:

<Directory /var/www/>
     Options Indexes FollowSymLinks
     AllowOverride None
     Require all granted
</Directory>

a

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Quindi riavviare apache

sudo service apache2 restart

o

sudo /etc/init.d/apache2 restart

Quindi modificare le autorizzazioni per <magento root director>

  • chmod -R 774 /var/www/html/<magento root director>

Quindi distribuire il contenuto statico

  • php bin/magento setup:static-content:deploy -f (-f è richiesto se si è in sviluppo env)

Quindi svuota la cache e reindicizza

  • <magento root directory> php bin/magento cache:flush
  • <magento root directory> php bin/magento indexer:reindex

O

  • <magento root directory> rm -R /var/cache*

Quindi accedi alla tua home page utilizzando

  • 127.0.0.1/your_configured_url invece di localhost/your_configured_url

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.