L'installazione locale di Magento 2 non genera file nella cartella pub / static


15

Ho appena installato Magento 2 Community Edition con dati di esempio (scaricati dal loro sito Web e non installati con il compositore) localmente tramite MAMP. Il processo di installazione ha avuto esito positivo, ma mancano tutti i file nella cartella pub / static tranne .htaccess. Ciò significa che tutti i CSS, i js ecc. Restituiscono 404 sia per il frontend che per il backend.

Ho trascorso diverse ore a cercare di risolvere questo problema senza fortuna. Questo è quello che ho fatto finora:

  • Modificato Options Indexes FollowSymLinks AllowOverrideda "Nessuno" a "Tutto" in /MAMP/conf/apache/httpd.conf e riavviato MAMP
  • Assicurarsi che LoadModule rewrite_module modules/mod_rewrite.sosia decommentato in httpd.conf
  • Imposta un dominio di sviluppo (magento.dev) in MAMP
  • php bin/magento setup:static-content:deployHo provato a correre nella radice magento.dev usando Terminal. Questo tuttavia restituisce:

Errore irreversibile: classe 'Locale' non trovata in /Applications/MAMP/htdocs/magento.dev/vendor/magento/framework/Locale/Bundle/DataBundle.php sulla riga 64

  • Non commentato e modificato RewriteBase RewriteBase /nel file .htaccess nella directory principale magento.dev.
  • Imposta Magento in modalità sviluppo
  • Svuotare la cache manualmente ed eseguirla di php bin/magento setup:static-content:deploynuovo

La maggior parte delle guide e dei post sul forum mi dicono di correre: php bin/magento setup:static-content:deployma non sono sicuro che lo stia facendo correttamente.

Sistema operativo: OSX 10.11.2

Versione MAMP: 3.5

Versione PHP: 7.0

Versione di Apache: 2.4.16

Versione MySQL: 5.6.25

Qualsiasi aiuto sarebbe apprezzato.


Sono su 2.2.2 installato sul server CentOS. Niente in questa pagina funziona. Per avere uno stile devo correre php bin/magento setup:static-content:deploy -f e aspettare 80 secondi.
Chris K,

Risposte:


15

SOLUZIONE # 1 (SE VUOI MODIFICARE IL FILE XML)

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 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

Per:

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

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

L'ho provato personalmente sul mio localhost usando MAMP, EasyPHP DevServer, Xampp e Wampp e installato con successo e usando Magento 2. Per ulteriori informazioni puoi controllare questo link: Magento 2 CSS e JavaScript non si caricano dalla cartella corretta

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 ".

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.


La risposta è stata modificata
Fayyaz Khattak, il

Greate! Ho provato la soluzione 1 e funziona per me .. Grazie Khatak sb
Muhammad Azeem

Benvenuto @MuhammadAzeem
Fayyaz Khattak,

@RajaKhoury Prego!
Fayyaz Khattak,

La soluzione 1 funziona per me! Grazie mille !!
Daniel Silva,

5

Prova a eseguire sotto il comando

php bin/magento setup:static-content:deploy

E se si verifica un errore durante l'esecuzione di questo comando, come il file mancante come hai già detto, quindi confrontare la struttura del file di progetto con una struttura di magento2file nuova . Se nel tuo progetto manca un file, copia il file appropriato nel tuo progetto.

E se hai altri errori, pubblica un errore nella tua domanda in modo che qualcuno possa rispondere alla tua domanda.


Grazie per una rapida risposta Lo farò. Dove esattamente e come posso eseguire questo comando?
Skovsgaard,

@Skovsgaard puoi eseguire questo comando dal tuo terminale ma assicurati di essere nella directory magento2 dal terminale
Keyur Shah,

Sembra che non manchi alcun file. Il Magento installato contiene ovviamente più file che sono correlati al processo di installazione. Ottengo questo errore: Fatal error: Class 'Locale' not found in /Applications/MAMP/htdocs/magento.dev/vendor/magento/framework/Locale/Bundle/DataBundle.php on line 64dopo aver eseguito php bin/magento setup:static-content:deploynella directory principale.
Skovsgaard,

Non sono stato davvero utile. Scusa.
Skovsgaard,

2

Sembra che l' intlestensione non sia caricata nella versione console di php. Verifica di utilizzare la stessa versione / impostazioni per apache e la versione cli di php.

MacOsX ha una versione preinstallata di php e alcuni pacchetti che installano php non cambiano il collegamento simbolico per la sessione terminale. Di conseguenza puoi avere diverse versioni di php installate contemporaneamente.

PS: Propongo di usare Vagrant su Mac OS. funziona abbastanza bene se usi nfs per la condivisione di file


Aha! Il php preinstallato (cli) è solo 5.5.30. Apache preinstallato è 2.4.16 (non so come controllare la versione apache di MAMP se MAMP installa anche Apache separatamente). Quindi devo aggiornare la versione preinstallata a 7 e installare anche l'estensione intl (cli o mamp?)? Vagrant sembra troppo avanzato per un noob come me.
Skovsgaard,

Non riesco a rispondere a domande specifiche per Mac ma ci sono almeno due modi per controllare la tua versione di PHP: php -v(che mostra quale versione di comandi PHP viene eseguita) e usando un phpinfo.php , che mostra quale versione di PHP viene eseguita dal server web.
Steve Johnson,

Ok, quindi MAMP esegue PHP 7 e Apache 2.2.29. La mia macchina locale esegue PHP 5.5.30 e Apache 2.4.16. Quindi il prossimo passo è aggiornare il PHP della macchina locale a 7?
Skovsgaard,

Prova a utilizzare il percorso completo per binario
php7

2

Se tutto il resto fallisce, pota queste directory:

rm -rf pub/static/*    # DO NOT DELETE .htaccess
rm -rf var/view_preprocessed/*
php bin/magento setup:static-content:deploy

Funzionerà se hai collegamenti simbolici rotti in quelle directory.


1
.htaccess non dovrebbe mai essere cancellato. Ho anche fatto questo errore e ho perso ore
Tahir Yasin,

1

cancella page_cache, di, view_process, cache

quindi autorizza correttamente le cartelle e i file.

quindi esegui php bin/magento setup:static-content:deploydalla cartella principale.

controlla pub / statico.

Spero che questo ti possa aiutare.


Dove e come corro clear page_cache, di ,view_process, cache? È un'installazione locale, quindi come amministratore super del mio computer ho tutte le autorizzazioni di lettura / scrittura. Ci sono altre autorizzazioni di cui non sono a conoscenza?
Skovsgaard,

se stai usando local piuttosto che dare piena autorizzazione a root-folder
nega vachhani il

tutte le cartelle sono in var / cancella tutte le cartelle e danno piena autorizzazione alla cartella.
Denish Vachhani,

1

Hai installato composered eseguito composer initnella directory magento2? In caso contrario, provalo, quindi esegui il comandophp bin/magento setup:static-content:deploy


Composer è installato sulla mia macchina, sì, ma non l'ho usato per installare Magento 2. Ho semplicemente scaricato il .zip dal loro sito Web, decompresso e installato. Se corro composer initcompositore mi chiede di configurare la composizione di composer.json, quindi immagino che non sarà d'aiuto.
Skovsgaard,
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.