Magento 2 CSS et JavaScript ne se chargent pas du bon dossier


35

J'espère que quelqu'un ici pourra vous aider. J'essaie d'installer et d'exécuter Magento 2 sur WAMP sur une machine Windows 7 avec peu de succès.

Après avoir parcouru les nombreux et divers défis pour charger le site, je suis maintenant confronté à 404 réponses, sans styles ni chargement javascript.

Spec est comme suit:

  • Magento-CE-2.0.0 + échantillons
  • Apache 2.4.9
  • PHP 5.5.12
  • MySQL 5.6.17

Quand je regarde la console du navigateur, parmi les erreurs, il y a des tentatives pour accéder à des fichiers qui ne sont pas dans le dossier pub / static. Le dossier "frontend" est chargé et la plupart des fichiers sont présents. J'ai remarqué cependant que certains fichiers CSS ne sont pas présents.

Sur l'exécution de la commande PHP deploy

php bin/magento setup:static-content:deploy

qui est mentionné dans d'autres messages, j'obtiens l'erreur ci-dessous. Je ne sais pas comment remédier à cela?

Erreur fatale: La mémoire autorisée a été épuisée (tentative d'allouer 64 octets) de 134217728 octets dans C: \ wamp \ www \ magento \ vendor \ oyejorge \ less.php \ lib \ Less \ Visitor.php à la ligne 45

Toute aide sera grandement appréciée.

MISE À JOUR

J'ai augmenté l'allocation de mémoire PHP et exécuté le script de déploiement PHP à nouveau. Cette fois, il n'a pas commis d'erreur et a été exécuté complètement. Cependant, le même problème que décrit ci-dessus est toujours présent. Le site se charge, mais chaque tentative de chargement d'une page ou d'une ressource entraîne une erreur 404 page introuvable, sans style.

Veuillez voir ci-dessous les erreurs dans Chrome Inspector.

entrez la description de l'image ici


@TejabhagavanKollepara Cette question a été posée en premier, est bien formée et a de bonnes réponses, alors l'autre question est un candidat pour dupe, pas celui-ci ... Btw, si le drapeau de l'autre question comme duplicata de celui-ci a été refusé , il n’est pas nécessaire de signaler cette question comme un doublon de l’autre pour tenter de parvenir au même résultat.
7ochem

Voir la réponse de SA également - une nouvelle installation de Magento est en mode "par défaut" (et non "en production") et n'a pas besoin du contenu statique déployé, ce qui vous est demandé dans toutes les autres réponses.
Jānis Elmeris

Réponses:


50

SOLUTION N ° 1 (SI VOUS VOULEZ MODIFIER UN FICHIER XML)

Je voudrais que vous téléchargiez Magento 2 zip magentocommerce.com/downloadavec des exemples de données, créez une nouvelle base de données dans phpmyadmin , extrayez le 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 de l'administrateur. Après une installation réussie, NE LANCEZ PAS magento.

Nous allons maintenant effacer / supprimer les caches et les sessions de Magento 2. Accédez aux 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 de 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 modifiant le ROOT > app > etc > di.xmlfichier. Ouvrez di.xmldans votre éditeur de code préféré, trouvez la virtualType name="developerMaterialization"section. Dans la section ci-dessous, vous trouverez un élément <item name="view_preprocessed" xsi:type="object">à modifier. Vous pouvez le modifier en modifiant 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

SOLUTION N ° 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 le 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 de l'administrateur. Après une installation réussie, NE LANCEZ PAS magento.

Nous allons maintenant vérifier l’installation de Composer, déployer du contenu statique, vider / vider le cache de Magento et réindexer les blocs de 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 Magento 2 ROOT.

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

Si vous rencontrez une erreur à cette étape, veuillez vérifier l’installation de Composer.

Dans cette étape, nous configurons du contenu statique à déployer sur notre magasin Magento. Pour ce faire, tapez “ Configuration php bin / magento: static-content: deploy ”.

Pour ceux qui sont sur Magento 2.2.x

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

En cas d'erreur, vérifiez votre variable d'environnement PHP.EXE et PHP.INI.

Effacez / videz le cache Magento en tapant «cache php bin / magento: flush » dans CMD.

Et enfin, pour réindexer les blocs statiques Magento, tapez «index PHP / magento: réindexer ».

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


4
Toujours dans php.ini, changez max_execution_time en 500, memory_limit en 2048M, post_max_size en 2048M, upload_max_filesize en 2048M et max_file_uploads en 2048.
Fayyaz Khattak le

Merci pour votre réponse rapide. J'ai apporté ces modifications mais elles n'ont eu aucun effet. J'ai redémarré le serveur WAMP après avoir apporté les modifications. J'ai édité la question pour montrer les erreurs que je peux voir dans l'inspecteur de Chrome
E.Gain

Oh, je suis désolé de mentionner encore une chose, commencez par supprimer tout le cache et la session, apportez des modifications dans di.xml et supprimez également tout ce qui se trouve dans ROOT> pub> static> SUPPRIMER TOUT SAUF .HTACCESS
Fayyaz Khattak le

1
@MagenX C'est le point de vue de chacun, quel outil il préfère utiliser. À vos yeux, vous critiquez tout comme un marteau plutôt que de partager votre vision de la solution.
Fayyaz Khattak le

1
La solution n ° 2 a fonctionné à merveille, merci de m'avoir épargné des heures, sinon des jours!
Jonathan Marzullo

11

il vous suffit de mettre à jour le fichier apache2.conf.

Sur Ubuntu 16.04

  1. Ouvrir et éditer le fichier /etc/apache2/apache2.conf
  2. Accédez à l'emplacement dans le fichier apache2.conf <Directory /var/www/>
  3. Changer "AllowOverride None"en"AllowOverride All"
  4. Sauvegarder le fichier
  5. Redémarrer apache2 -> sudo service apache2 restart

C'était si difficile de trouver cette réponse! Partout ailleurs, les gens suggèrent de (re) déployer du contenu statique, même si une nouvelle installation de Magento est en mode "par défaut" (pas de "production") et ne nécessite pas le déploiement du contenu statique.
Jānis Elmeris

10

Si vous rencontrez des problèmes de conception de chargement de page css et js après l’installation dans magento2

veuillez suivre les étapes suivantes:

ouvrez le terminal et accédez à la racine Web de magento

 $ cd / var / www / html / magento2 

Étape 1.

 $ php bin / setup magento: contenu statique: deploy

Étape 2.

$ php bin / magento indexer: réindexer

Étape 3.

assurez-vous qu'apache «rewrite_module» est activé, puis redémarrez le serveur

Étape 4.

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

Étape 5.

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

Étape 6.

supprimer le dossier de cache sous var / cache

L'étape ci-dessus fonctionne. J'espère que cela fonctionnera pour vous aussi.

Faites-moi savoir si tout problème. :)

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


1
comment exécuter ces commandes dans Windows?
Hassan ALi

1
Cela fonctionne pour moi juste pour les 3 premières étapes. :)
hln

6
Pas si malin de définir l'autorisation sur 777 pour tous les fichiers du serveur.
Chris Gudn

1
Je ne suis pas vraiment impressionné par l'étape où vous accordez une autorisation complète en lecture / écriture à l'ensemble de l'installation de magento.
Cyclonecode

1
définir des autorisations sur 777 est un mauvais conseil, mais espérons que tous les administrateurs système en sauront davantage.
John Hall

6

Pour moi, c'était simplement parce que mod_rewrite n'était pas activé.

sudo a2enmod rewrite

et

service apache2 restart


1
solution parfaite !!! +1 :)
SagarPPanchal

6

J'ai eu le même problème résolu en ajoutant

sudo nano /etc/apache2/apache2.conf

Modifier ceci

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

pour ça

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

vous devez également activer le mod_rewritemodule apache2 des certificats ssl et insall:

sudo a2enmod ssl

sudo a2ensite default-ssl

sudo a2enmod rewrite

sudo service apache2 restart

1
Ceci, plus rm -rf var / * a fonctionné pour moi. Super et bon endroit.
Jon Holland

6

Voici la solution la plus simple si vous affichez le nom de la version dans le chemin css

comme: pub / static / version323334 /

puis lancez cette requête dans mysql

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

après cela effacer le cache de configuration

 bin/magento cache:clean config

vous pouvez également désactiver la version de fichier statique à partir de l'administrateur

entrez la description de l'image ici


4
Cela a fonctionné pour moi merci. Cependant, la requête doit être corrigée. INSERT INTO core_config_data (chemin, value) VALUES ('dev / static / sign', 0);
Aftab Naveed

quel est le chemin et les valeurs
Depuis

path, value sont les champs name Je définis déjà des valeurs (dev / static / sign, 0), lancez simplement ce sql ça devrait être travail
Surendra Kumar Ahir

solution parfaite !!! fait ma journée :) +1
SagarPPanchal

5
  1. Essayez de désactiver le cache si vous ne le désactivez pas avant
  2. Assurez-vous de disposer de la dernière version de Magento avec un code vierge. Si vous modifiez ou personnalisez quelque chose, assurez-vous de corriger toutes les erreurs.
  3. Exécuter plusieurs commandes ci-dessous peut vous aider.

    php bin/magento indexer:reindex

    php bin/magento cache:flush

Supprimer des dossiers dans

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

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


3

Dans mon cas, j'ai accidentellement supprimé le .htaccessfichier ROOT/pub/et les ROOT/pub/staticdossiers. Ensuite, il commence à fonctionner lorsque je le retourne .


2

Résolu !!!

Exécutez les commandes suivantes dans l'interface CLI de votre dossier racine Magento2:

php bin/magento setup:static-content:deploy

php bin/magento indexer:reindex

Supprimez ensuite le dossier var par cette commande à la racine de magento2.

rm -rf var/*

Ensuite, actualisez votre page d'accueil et votre panneau d'administration. Ça marche !!!!! Cool !!!!


1

J'ai eu le même problème avec 404. Je l'ai résolu en m'assurant que la directive VirtualHost dans Apache était correcte. Voici mon VirtualHost:

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

Et pouvez-vous aussi dire ce qui n'allait pas avant? Sinon, cet exemple ne sera pas d'une grande aide pour les autres.
Fabian Schmengler


0

J'avais exactement le même problème que l'OP et c'était simplement parce que je définissais mes paramètres régionaux sur en_AU. L'utilisation de la commande deploy par défaut ne générait que le en_UScontenu. Vous devez ajouter les paramètres régionaux que vous utilisez réellement au EN de la commande, comme ceci:

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

0

J'ai essayé les solutions ci-dessus. Mais cela ne m'a pas aidé. Malgré cela, j'ai utilisé les mêmes commandes qu'ils ont mentionnées avec les changements de séquence. Elles sont,

  1. clear cache, composer_home, génération, log, page_cache, tmp et view_preprocessed à partir du répertoire var

  2. lancez les commandes suivantes une à une.

php bin / magento indexer: réindexer

cache php bin / magento: vidage

php bin / magento setup: contenu statique: deploy

J'espère que cela peut aider quelqu'un comme moi.


0

Désactiver mod_pagespeed

Pagespeed traite une instance "mise en cache" de votre contenu avec une abréviation, c'est-à-dire s'il s'agit du fichier normal.

image.css

Ce sera réglé comme suit.

image.pagespeed.css

Ce qui précède est un exemple très simple, mais vous pouvez déjà voir où se trouve le problème sous-jacent. Cela peut entraîner un chargement incorrect du contenu statique car il est impossible de le trouver via le chemin principal, du fait que ceux-ci sont temporaires. C'est un problème hérité avec Mod_Pagespeed, c'est pourquoi nous vous conseillons de le laisser désactivé.

la réponse du support comet rapide, et cela a résolu mon problème


0

Pour Ubuntu 18.04 (Bionic). J'ai utilisé les étapes suivantes pour que les fichiers statiques se chargent correctement.

Une fois l'installation terminée:

Assurez-vous que le module 'réécriture' d'apache est activé, sinon procédez comme suit

  • cd /etc/apache2
  • commande d'exécution a2enmod rewrite
  • sudo vi /etc/apache2/apache2.conf

Puis apportez les modifications suivantes

Modifier de:

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

à

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

Puis redémarrez Apache

sudo service apache2 restart

ou

sudo /etc/init.d/apache2 restart

Puis changez les permissions pour <magento root director>

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

Puis déployez le contenu statique

  • php bin/magento setup:static-content:deploy -f (-f est requis si vous êtes en développement env)

Puis vider le cache et réindexer

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

OU

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

Accédez ensuite à votre page d'accueil à l'aide de

  • 127.0.0.1/your_configured_url au lieu de localhost/your_configured_url

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.