JS e CSS uniti non funzionano in modalità Produzione


24

Ero in modalità sviluppatore , tutto era fantastico, quando sono passato alla modalità di produzione , le opzioni unite di CSS e JS sembrano essere ignorate, era tornato a elencare tutti i CSS e i js.

Inoltre, la pagina del prodotto mostra solo le immagini del prodotto in modalità sviluppatore, dopo essere passate alla modalità di produzione scompaiono.

Qualche idea di aiutarmi?


Il punto è che lo sto facendo.

Ecco cosa ho fatto in sequenza:

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

E prima ancora di iniziare, le opzioni di unione sono SÌ ed ero in modalità sviluppatore.


Ciao, hai qualche soluzione a questo problema, sto ricevendo lo stesso problema in Magento 2.0.7. Per favore, dai la soluzione se ne hai, Grazie
Ashish Jagnani,

stesso problema che sto affrontando per favore aiutatemi
Rv Singh

Risposte:


19

Ho appena fatto quanto segue e il problema è stato risolto:

installazione bin / magento: aggiornamento

indicizzatore bin / magento: reindex

bin / magento deploy: mode: imposta la produzione -s

# Ecco il segreto: eseguire il di: compilare dopo la produzione
bin / magento setup: di: compile  

installazione bin / magento: contenuto statico: deploy

2
ho provato allo stesso modo, ma senza fortuna
Pradeep Kumar,

Questo ha funzionato per me.
Dchayka,

Se eseguo il comando "production -s", svuota il mio sito e dò un errore molto insolito: Avviso: include (/ siteRoot / html / var / view_preprocessed / html / vendor / magento / module-theme / view / base / templates / root. phtml): impossibile aprire il flusso: nessun file o directory in /siteRoot/html/vendor/magento/framework/View/Result/Page.php sulla linea 312
Jai

Un altro - ha funzionato per me. Nel caso in cui qualcun altro avesse il problema, io ero. I CSS si minimizzerebbero e raggrupperebbero, ma JS no, nonostante le opzioni siano abilitate nell'amministratore. L'aggiunta di -s nella modalità prodotto impostata ha fatto la differenza. Inoltre, il backend è MOLTO più veloce anche adesso. Stavo usando lo stesso ordine e gli stessi comandi, ma sono stati i "-s" che hanno fatto la differenza, grazie
dawhoo

Devo prima tornare alla modalità di sviluppo? Ho fatto quello che hai detto, ma nessuna differenza ...
Jilco Tigchelaar,

2

Assicurati di controllare anche il tuo file di configurazione NGINX.

Se è presente un $MAGE_MODEset di variabili, è necessario modificarlo in productione salvare il file

Successivamente sarà necessario ricaricare o riavviare NGINX in base alle proprie preferenze.

sudo service nginx reload

O

sudo service nginx restart

Dopodiché controlla il tuo app/etc/env.phpe vedi se anche la MAGE_MODEchiave dell'array è impostata su productionse non cambiarla productiono puoi usare il comando

php bin/magento deploy:mode:set production

Dopo aver eseguito il comando, verificare se il valore è cambiato app/etc/env.php, a volte potrebbero esserci problemi di autorizzazione.

Quindi, ripulisci la pub/staticcartella.

rm -rf pub/static/*

Svuota / Svuota la cache

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

Ora sei pronto per eseguire la distribuzione del contenuto statico

php bin/magento setup:static-content:deploy

Spero che sia di aiuto.


1

Ho il problema simile. La causa di nessuna immagine è perché c'è un errore nel file JS dopo aver minimizzato JS. Puoi verificarlo nel tuo browser (firebug ecc.).

... / div> '; return __p};}) (finestra, documento, posizione, tipo di jQuery! ==' undefined '&& jQu

Ho risolto questo problema rimuovendo tutti i file in var / cache /e pub / static / e setup: static-content: distribuisci di nuovo

Ma c'è ancora un altro problema, si tratta del rompicapo se lo abiliti. Braintree non si presenta a causa di un altro errore JS.

Errore: errore di script per: https://js.braintreegateway.com/v2/braintree.js http://requirejs.org/docs/errors.html#scripterror

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

Per ora, semplicemente non uso la funzione minify js per evitare il problema fino a quando non viene trovata la soluzione.


1

Questi sono i passaggi che hanno funzionato per me su Magento ver. 2.1.7 con Redis (non esegue Vernice). Tuttavia, non è ancora chiaro se tutto funzioni come dovrebbe. JS è minimizzato e raggruppato (non è chiaro cosa dovrebbe fare la fusione). CSS è minimizzato (non vederlo unito).

  1. Disattiva tutta la cache di Magento.
  2. Cancella cache redis.
  3. Attiva tutte e cinque le configurazioni css / js (in admin o tramite database).
  4. Genera file statici.
  5. Svuota cache Magento (riga di comando). Per motivi di sicurezza (potrebbe non essere necessario).
  6. Cancella opcache (se non impostato per l'aggiornamento automatico).
  7. Aggiorna la home page del frontend (e verifica la presenza di errori nella console del browser).
  8. Attiva la cache di 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

Semplicemente accendendo le configurazioni e svuotando la cache non ha funzionato - la console del browser frontend ha riportato molti errori js.


Unisci unirà i tuoi file in uno solo.
mestolo 3000

0

Hai provato a svuotare JavaScript / CSS? Puoi farlo in Sistema> Gestione cache e quindi premere il pulsante che si trova nella parte inferiore della tabella a sinistra "Flus JavaScript / CSS Cache"


YEP .... flush js, quindi cache. Non cambia nulla. Tuttavia, se passo alla modalità sviluppatore, l'unione funziona.
Bruno Bueno

0

È necessario ridistribuire l'elettricità statica dopo aver abilitato questa opzione in modalità di produzione.


Il punto è che lo sto facendo. Ho appena pubblicato qui quello che ho fatto.
Bruno Bueno

Se non funziona, il problema potrebbe essere in autorizzazione. Riesci a controllare l'accesso al tuo server web / registro errori
KAndy

0

Ho appena fatto quanto segue e il problema è stato risolto.

bin/magento setup:upgrade

bin/magento indexer:reindex

bin/magento deploy:mode:set production -s

bin/magento setup:di:compile

(Ecco il segreto per eseguire il di: compilare dopo la produzione)

bin/magento setup:static-content:deploy

0

Ho avuto il problema quando JavaScript non è stato compilato, il selettore jquery funziona.

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

Ma una volta compilato, compresso e unito, devo quindi codificare: -

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

Non chiederti perché, sembra che quando si legge direttamente dalla cache, il codice requestjs viene eseguito prima di domReady e gli elementi si collegano a elementi diversi in una pagina diversa.



-1
  1. Abilitare anche l'opzione "Abilita raggruppamento JavaScript"

    store-> configurazione-> avanzato-> sviluppatore-> impostazione javascript->

  2. Abilita Bundling JavaScript impostato su "yes" e svuota la cache


2
Consiglio di Haphazard che non ha nulla a che fare con la domanda.
mestolo 3000
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.