JS et CSS fusionnés ne fonctionnent pas lorsque le mode Production


24

J'étais en mode développeur , tout était super, quand je suis passé en mode Production , les options fusionnées de CSS et JS semblent être ignorées, il était de retour en listant tous les css et js.

De plus, la page du produit affiche uniquement les images du produit en mode développeur, après avoir changé en mode de production, elles disparaissent.

Avez-vous pensé à m'aider?


Le fait est que je le fais.

Voici ce que j'ai fait en séquence:

bin/magento setup:upgrade

bin/magento indexer:reindex

bin/magento setup:static-content:deploy

bin/magento setup:di:compile

bin/magento deploy:mode:set production

bin/magento setup:static-content:deploy

Et avant même de commencer, les options de fusion sont OUI et j'étais en mode développeur.


Bonjour, avez-vous une solution à ce problème, je reçois le même problème dans magento 2.0.7. Veuillez donner la solution si vous en avez, merci
Ashish Jagnani

même problème auquel je suis confronté s'il vous plaît aidez-moi
Rv Singh

Réponses:


19

Je viens de faire ce qui suit et le problème a été résolu:

configuration bin / magento: mise à niveau

indexeur bin / magento: réindexation

bin / magento deploy: mode: set production -s

# Voici le secret: lancez di: compile après la production
configuration bin / magento: di: compile  

configuration bin / magento: contenu statique: déployer

2
j'ai essayé de la même manière mais pas de chance
Pradeep Kumar

Cela a fonctionné pour moi.
dchayka

Si j'exécute la commande "production -s", cela vide mon site et donne une erreur très inhabituelle: Avertissement: include (/ siteRoot / html / var / view_preprocessed / html / vendor / magento / module-theme / view / base / templates / root. phtml): échec d'ouverture du flux: aucun fichier ou répertoire de ce type dans /siteRoot/html/vendor/magento/framework/View/Result/Page.php sur la ligne 312
Jai

Un autre - qui a fonctionné pour moi. Au cas où quelqu'un d'autre aurait le problème que j'étais. CSS réduirait et regrouperait, mais pas JS, bien que les options soient activées dans l'admin. L'ajout de -s dans le mode produit défini a fait toute la différence. De plus, le backend est maintenant beaucoup plus rapide. J'utilisais le même ordre et les mêmes commandes, mais ce sont les "-s" qui ont fait la différence, merci
dawhoo

Dois-je d'abord revenir en mode développement? J'ai fait ce que vous avez mentionné, mais aucune différence ....
Jilco Tigchelaar

2

Assurez-vous de vérifier également votre fichier de configuration NGINX.

S'il y a un $MAGE_MODEensemble de variables , il doit également être changé productionen, et enregistrer le fichier

Après cela, vous devrez recharger ou redémarrer NGINX selon vos préférences.

sudo service nginx reload

OU

sudo service nginx restart

Après cela, vérifiez votre app/etc/env.phpet voyez si la MAGE_MODEclé du tableau est également définie sur productionsinon changez-la en productionou vous pouvez utiliser la commande

php bin/magento deploy:mode:set production

Après avoir exécuté la commande, vérifiez si la valeur a changé app/etc/env.php, il peut parfois y avoir des problèmes d'autorisation.

Ensuite, nettoyez le pub/staticdossier.

rm -rf pub/static/*

Vider / vider votre cache

php bin/magento cache:clean
php bin/magento cache:flush 

Vous êtes maintenant prêt à exécuter le déploiement de contenu statique

php bin/magento setup:static-content:deploy

J'espère que cela t'aides.


1

J'ai le même problème. La cause de l'absence d'image est due à une erreur dans le fichier JS après la réduction de JS. Vous pouvez le vérifier dans votre navigateur (firebug, etc.).

... / div> '; return __p};}) (fenêtre, document, emplacement, type de jQuery! ==' indéfini '&& jQu

J'ai résolu cela en supprimant tout le fichier dans var / cache /et pub / statique / et configuration: contenu statique: déployer à nouveau

Mais il y a encore un autre problème, il s'agit du cerveau si vous l'activez. Braintree ne s'affiche pas en raison d'une autre erreur JS.

Erreur: erreur de script pour: https://js.braintreegateway.com/v2/braintree.js http://requirejs.org/docs/errors.html#scripterror

... Erreur (id, msg, err, requireModules) {var e = new Error (msg + '\ nhttp: //requirejs.org/doc ...

Pour l'instant, je n'utilise tout simplement pas la fonction minify js pour éviter les problèmes jusqu'à ce que la solution soit trouvée.


1

Ce sont les étapes qui ont fonctionné pour moi sur Magento ver. 2.1.7 avec Redis (ne pas exécuter Varnish). Cependant, on ne sait toujours pas si tout fonctionne comme il se doit. JS est minifié et intégré (on ne sait pas ce que la fusion est censée faire). CSS est minifié (ne le voit pas fusionné).

  1. Désactivez tout le cache Magento.
  2. Vider le cache de redis.
  3. Activez les cinq configurations css / js (soit dans l'admin, soit via la base de données).
  4. Générez des fichiers statiques.
  5. Vider le cache Magento (ligne de commande). Pour des raisons de sécurité (peut ne pas être nécessaire).
  6. Effacer l'opcache (s'il n'est pas réglé sur l'actualisation automatique).
  7. Actualisez la page d'accueil frontend (et vérifiez la console du navigateur pour les erreurs).
  8. Activez le cache Magento.

dev / css / merge_css_files = 1 dev / css / minify_files = 1 dev / js / enable_js_bundling = 1 dev / js / merge_files = 1 dev / js / minify_files = 1

Le simple fait d'activer les configurations et de vider le cache n'a pas fonctionné - la console du navigateur frontal a signalé de nombreuses erreurs js.


Fusionner fusionnera vos fichiers ensemble en un seul.
ladle3000

0

Avez-vous essayé de vider le JavaScript / CSS? Vous pouvez le faire sous Système> Gestion du cache, puis appuyez sur le bouton qui se trouve en bas du tableau à gauche 'Flus JavaScript / CSS Cache'


YEP .... flush js, puis cache. Rien ne change. Cependant, si je passe en mode développeur, la fusion fonctionne.
BrunoBueno

0

Vous devez redéployer l'électricité statique après avoir activé cette option en mode production.


Le fait est que je le fais. Je viens de poster ici ce que j'ai fait.
BrunoBueno

Si cela ne fonctionne pas, le problème peut être lié à l'autorisation. Pouvez-vous consulter le journal des erreurs d'accès / d'accès à votre serveur Web
KAndy

0

Je viens de faire ce qui suit et le problème a été résolu.

bin/magento setup:upgrade

bin/magento indexer:reindex

bin/magento deploy:mode:set production -s

bin/magento setup:di:compile

(Voici le secret, pour exécuter di: compiler après la production)

bin/magento setup:static-content:deploy

0

J'ai eu le problème lorsque le JavaScript n'est pas compilé, le sélecteur jquery fonctionne.

$ ('# my_element'). click (function () {alert ('Hello World');});

Mais une fois compilé, compressé et joint, j'ai besoin de coder: -

$ ('body #my_element'). click (function () {alert ('Hello World');});

Ne demandez pas pourquoi, il semble que lors de la lecture directement à partir du cache, le code requirejs s'exécute avant le domReady et les éléments s'attachent à différents éléments dans une page différente.



-1
  1. Veuillez également activer l'option "Activer le regroupement JavaScript"

    store-> configuration-> advanced-> developer-> javascript setting->

  2. Activer le regroupement JavaScript défini sur "oui" et vider le cache


2
Des conseils fortuits qui n'ont rien à voir avec la question.
ladle3000
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.