L'installation locale de Magento 2 ne génère pas de fichiers dans le dossier pub / statique


15

Je viens d'installer Magento 2 Community Edition avec des exemples de données (téléchargés depuis leur site Web et non installés avec Composer) localement via MAMP. Le processus d'installation a réussi, mais tous les fichiers du dossier pub / static sont manquants, à l'exception de .htaccess. Cela signifie que tous les css, js etc. renvoient 404 pour le frontend et le backend.

J'ai passé plusieurs heures à essayer de résoudre ce problème sans chance. Voici ce que j'ai fait jusqu'à présent:

  • Modifié Options Indexes FollowSymLinks AllowOverridede «Aucun» à «Tous» dans le /MAMP/conf/apache/httpd.conf et redémarré MAMP
  • Assurez LoadModule rewrite_module modules/mod_rewrite.so- vous qu'il n'est pas commenté dans httpd.conf
  • Configurer un domaine de développement (magento.dev) dans MAMP
  • php bin/magento setup:static-content:deployJ'ai essayé de courir dans la racine magento.dev en utilisant Terminal. Cela renvoie cependant:

Erreur fatale: la classe «Paramètres régionaux» est introuvable dans /Applications/MAMP/htdocs/magento.dev/vendor/magento/framework/Locale/Bundle/DataBundle.php sur la ligne 64

  • RewriteBase non commenté et modifié RewriteBase /dans le fichier .htaccess dans le répertoire racine magento.dev.
  • Mettre Magento en mode développement
  • Effacement du cache manuellement et en cours d' exécution à php bin/magento setup:static-content:deploynouveau

La plupart des guides et des messages du forum me disent de courir: php bin/magento setup:static-content:deploymais je ne sais pas si je le fais correctement.

OS: OSX 10.11.2

Version MAMP: 3.5

Version PHP: 7.0

Version Apache: 2.4.16

Version MySQL: 5.6.25

Toute aide serait appréciée.


Je suis sur 2.2.2 installé sur le serveur CentOS. Rien sur cette page ne fonctionne. Pour avoir un style, je dois courir php bin/magento setup:static-content:deploy -f et attendre 80 secondes.
Chris K

Réponses:


15

SOLUTION # 1 (SI VOUS VOULEZ MODIFIER UN FICHIER XML)

J'aimerais que vous téléchargiez Magento 2 zip depuis magentocommerce.com/download, créez un nouveau db dans phpmyadmin , extrayez zip dans le dossier htdocs . Installez Magento 2 mais n'utilisez pas localhost, utilisez 127.0.0.1 dans l'URL du magasin et l'URL d'administration. Après une installation réussie, n'exécutez PAS magento.

Maintenant, nous allons effacer / supprimer les caches et les sessions de Magento 2. Allez dans les chemins suivants et supprimez tout:

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

Lorsque Magento 2 n'est pas en mode production, il essaiera de créer des liens symboliques pour certaines ressources statiques sur le serveur local. Nous devons changer ce comportement de Magento 2 en allant éditer le ROOT > app > etc > di.xmlfichier. Ouvrez di.xmldans votre éditeur de code préféré, trouvez la virtualType name="developerMaterialization"section. Dans cette section ci-dessous, vous trouverez un élément <item name="view_preprocessed" xsi:type="object">qui doit être modifié. Vous pouvez le modifier en changeant le contenu suivant:

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

À:

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

Maintenant, dernière étape, supprimez également les anciens fichiers générés dans ROOT > pub > static > DELETE ALL EXCEPT .HTACCESS

Je l'ai personnellement essayé sur mon hôte local en utilisant MAMP, EasyPHP DevServer, Xampp et Wampp et j'ai installé et utilisé avec succès Magento 2. Pour plus d'informations, vous pouvez consulter ce lien: Magento 2 CSS et JavaScript ne se chargeant pas à partir du bon dossier

SOLUTION # 2

Installez Composer. Maintenant, je voudrais que vous téléchargiez Magento 2 zip depuis magentocommerce.com/download, créez une nouvelle base de données dans phpmyadmin , extrayez zip dans le dossier htdocs . Installez Magento 2 mais n'utilisez pas localhost, utilisez 127.0.0.1 dans l'URL du magasin et l'URL d'administration. Après une installation réussie, n'exécutez PAS magento.

Nous allons maintenant vérifier l'installation de Composer, déployer du contenu statique, effacer / vider le cache Magento et réindexer les blocs Magento 2. Pour effectuer toutes les actions ci-dessus, appuyez sur WINDOWS KEY + R pour ouvrir la boîte de dialogue RUN et tapez «cmd» pour ouvrir l'invite de commande.

Tapez " cd PATH_TO_YOUR_MAGENTO2_FILES " pour entrer dans le répertoire ROOT de Magento 2.

Maintenant, pour vérifier l'installation de Composer dans le répertoire ci-dessus, tapez " composer composer install ".

Si vous obtenez une erreur dans cette étape, veuillez vérifier votre installation Composer

Dans cette étape, nous mettons en place du contenu statique à déployer sur notre boutique Magento. Pour ce faire, tapez « php bin / magento setup: static-content: deploy ».

Si vous obtenez une erreur, vérifiez votre variable d'environnement PHP.EXE et PHP.INI

Vider / vider le cache Magento en tapant " php bin / magento cache: flush " dans CMD.

Et enfin, pour Reindex Magento Static Blocks, tapez " php bin / magento indexer: reindex ".

Vous avez terminé l'installation réussie de Magento 2.


La réponse a été modifiée.
Fayyaz Khattak

Greate! J'ai essayé la solution 1 et ça marche pour moi .. Merci Khatak sb
Muhammad Azeem

Bienvenue @MuhammadAzeem
Fayyaz Khattak

@RajaKhoury Vous êtes les bienvenus!
Fayyaz Khattak

La solution 1 fonctionne pour moi! Merci beaucoup !!
Daniel Silva

5

Essayez d'exécuter la commande ci-dessous

php bin/magento setup:static-content:deploy

Et si cela donne une erreur lors de l'exécution de cette commande, comme un fichier manquant comme vous l'avez déjà dit, comparez la structure de votre fichier de projet avec une nouvelle magento2structure de fichier. Si un fichier manque dans votre projet, copiez le fichier approprié dans votre projet.

Et si vous avez une autre erreur, postez une erreur dans votre question afin que quelqu'un puisse répondre à votre question.


Merci pour une réponse rapide. Je ferai ça. Où exactement et comment exécuter cette commande?
Skovsgaard

@Skovsgaard vous pouvez exécuter cette commande à partir de votre terminal mais assurez-vous que vous êtes dans le répertoire magento2 du terminal
Keyur Shah

Il semble qu'aucun fichier ne manque. Le Magento installé contient évidemment plus de fichiers qui sont liés au processus d'installation. J'obtiens cette erreur: Fatal error: Class 'Locale' not found in /Applications/MAMP/htdocs/magento.dev/vendor/magento/framework/Locale/Bundle/DataBundle.php on line 64après avoir exécuté php bin/magento setup:static-content:deploydans le répertoire racine.
Skovsgaard

Je n'étais pas vraiment utile. Pardon.
Skovsgaard

2

Il semble que l' intlextension ne soit pas chargée dans votre version console de php. Veuillez vérifier que vous utilisez la même version / les mêmes paramètres pour apache et la version cli de php.

MacOsX a une version préinstallée de php et certains packages qui installent php ne modifient pas le lien symbolique pour la session de terminal. En conséquence, vous pouvez installer différentes versions de php en même temps.

PS: je propose d'utiliser vagrant sur Mac OS. cela fonctionne assez bien si vous utilisez nfs pour le partage de fichiers


Ah! Le php (cli) préinstallé n'est que de 5.5.30. Apache préinstallé est 2.4.16 (je ne sais pas comment vérifier la version apache de MAMP si MAMP installe également Apache séparément). Je dois donc mettre à jour la version préinstallée à 7 et également installer l'extension intl (cli ou mamp?)? Vagrant semble trop avancé pour un noob comme moi.
Skovsgaard

Je ne peux pas répondre aux questions spécifiques à Mac, mais il existe au moins deux façons de vérifier votre version PHP: php -v(qui indique la version des commandes PHP exécutées) et en utilisant un phpinfo.php , qui indique la version de PHP exécutée par le serveur Web.
Steve Johnson

D'accord, donc MAMP exécute PHP 7 et Apache 2.2.29. Ma machine locale exécute PHP 5.5.30 et Apache 2.4.16. La prochaine étape consiste donc à mettre à jour le PHP de la machine locale à 7?
Skovsgaard

Veuillez essayer d'utiliser le chemin complet vers le binaire
php7

2

Si tout le reste échoue, élaguez ces répertoires:

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

Cela fonctionnera si vous avez des liens symboliques cassés dans ces répertoires.


1
.htaccess ne doit jamais être supprimé. J'ai aussi fait cette erreur et perdu des heures
Tahir Yasin

1

clear page_cache, di, view_process, cache

puis donnez l'autorisation appropriée aux dossiers et fichiers.

puis exécutez à php bin/magento setup:static-content:deploypartir de votre dossier racine.

vérifier pub / statique.

J'espère que cela t'aidera.


Où et comment courir clear page_cache, di ,view_process, cache? C'est une installation locale, donc en tant qu'administrateur super de mon ordinateur, j'ai toutes les autorisations de lecture / écriture. Y a-t-il d'autres autorisations dont je ne suis pas au courant?
Skovsgaard

si vous utilisez local que donner une autorisation complète au dossier racine
denish vachhani

tous les dossiers sont dans var / clear tous les dossiers et donnent une autorisation complète au dossier.
denish vachhani

1

Avez-vous installé composeret exécuté composer initdans le répertoire magento2? Sinon, essayez-le puis exécutez la commandephp bin/magento setup:static-content:deploy


Composer est installé sur ma machine, oui, mais je ne l'ai pas utilisé pour installer Magento 2. Je viens de télécharger le fichier .zip depuis leur site Web, décompressé et installé. Si je lance composer initComposer, il me demande de configurer la configuration de composer.json, donc je suppose que cela ne va pas aider.
Skovsgaard
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.