La modalità sviluppatore Magento 2 non rigenera automaticamente i file statici


14

Ho un'installazione di Magento 2.0.2 in modalità sviluppatore e non riesco ancora a capire come forzarlo a rigenerare i file di visualizzazione statica ogni volta che apporto una modifica al mio CSS.

Ho verificato di essere in modalità sviluppatore eseguendo php bin/magento deploy:mode:show

In questa pagina si dice che la modalità sviluppatore disabilita la memorizzazione nella cache dei file di visualizzazione statica, ma non è questo il caso per me.

Ho provato a modificare il di.xmlcome menzionato in questa soluzione ma non ha cambiato il comportamento di Magento.

Come posso dire a magento di rigenerare automaticamente i file di visualizzazione statica?

Risposte:


4

In modalità sviluppatore, M2 non genera file statici. Dovrebbe creare collegamenti simbolici a loro dai vari moduli. Se tuttavia hai eseguito il programma di installazione: static-content: deploy e disponi di quei file, non li aggiornerà. Prova a rimuovere tutti i file statici e vedi se Magento li collega (fai attenzione a non rimuovere i file effettivi se hai collegamenti simbolici)


1
Ho provato a cancellare l'intero contenuto di pub / static (senza cancellare il file .htaccess) e non ha funzionato. Sembra che i vecchi file siano stati rigenerati.
AlexandreC

Attualmente, l'unico modo per ottenere il contenuto aggiornato è facendo clic su "Svuota cache dei file statici" nella pagina Gestione cache Magento.
AlexandreC

4
Ho avuto lo stesso problema di non generare link simbolici in modalità sviluppatore; poi ho capito di aver cancellato il .htaccesfile da pub/static; una volta ripristinato il .htaccessfile nella pub/staticrichiesta successiva, ho rigenerato tutti i collegamenti simbolici; spero che sia d'aiuto.
Alessandro Ronchi,

Attualmente ho lo stesso problema con Magento 2.0.6. .htaccessHo provato ad aggiungere nuovamente il file (eseguo nginx, quindi non pensavo che avrebbe fatto molto) e, come previsto, non ha funzionato. In precedenza i miei collegamenti simbolici erano stati creati, ma ora non più ...
Giel Berkers,

1
Dato che ritenevamo pub/staticcomunque autoalimentato, lo abbiamo anche eliminato manualmente ad un certo punto e si è verificato lo stesso problema. Sembra che nella nostra configurazione di apache2 / php7 il file .htaccess ora mancante sia davvero responsabile di questo. Dopo aver ricreato la modalità sviluppatore .htaccess originale funzionava di nuovo bene. Ecco il link ai recenti .htacces: github.com/magento/magento2/blob/develop/pub/static/.htaccess
Jey DWork,

1

Lo stesso è successo a me. Dopo aver spostato il sito su un altro server, è risultato che non ho impostato i permessi dei file corretti.

Ho corso find . -type d -exec chmod 770 {} \; && find . -type f -exec chmod 660 {} \; && chmod u+x bin/magentoe questo ha risolto il mio problema.

Ulteriori informazioni: Magento 2: autorizzazione file consigliata per l'hosting condiviso

Aggiornamento: assicurarsi che la cartella pub (magento / pub) e le cartelle sottostanti abbiano le autorizzazioni di lettura e scrittura.


2
Qualunque downvoting: perché?
Chris K,

0

Un po 'tardi qui, ma stavo riscontrando lo stesso problema. Avevo developerabilitato la modalità per un po 'di tempo, quindi per qualche motivo (probabilmente un errore da parte mia a un certo punto), non sembrava più funzionare.

La soluzione semplice per me era ripristinare nuovamente la modalità allo sviluppatore:

php bin/magento deploy:mode:show developer

NB: potrebbe essere necessario impostarlo su defaulte quindi developer.


Anche questo non ha aiutato. Altri suggerimenti?
Adarsh ​​Khatri,

0

Stavo affrontando lo stesso problema con la visualizzazione dei miei meno aggiornamenti a meno che non avessi scaricato i miei file statici. La correzione per me era disabilitaremod_expires . Questo stava memorizzando nella cache il CSS ed ecc.

All'interno del pub/static/.htaccessfile dovresti avere qualcosa di simile al seguente:

<IfModule mod_expires.c>

############################################
## Add default Expires header
## http://developer.yahoo.com/performance/rules.html#expires

    ExpiresActive On

    # Data
    <FilesMatch \.(zip|gz|gzip|bz2|csv|xml)$>
        ExpiresDefault "access plus 0 seconds"
    </FilesMatch>
    ExpiresByType text/xml "access plus 0 seconds"
    ExpiresByType text/csv "access plus 0 seconds"
    ExpiresByType application/json "access plus 0 seconds"
    ExpiresByType application/zip "access plus 0 seconds"
    ExpiresByType application/x-gzip "access plus 0 seconds"
    ExpiresByType application/x-bzip2 "access plus 0 seconds"

    # CSS, JavaScript, html
    <FilesMatch \.(css|js|html|json)$>
        ExpiresDefault "access plus 1 year"
    </FilesMatch>
    ExpiresByType text/css "access plus 1 year"
    ExpiresByType text/html "access plus 1 year"
    ExpiresByType application/javascript "access plus 1 year"
    ExpiresByType application/json "access plus 1 year"

    # Favicon, images, flash
    <FilesMatch \.(ico|gif|png|jpg|jpeg|swf|svg)$>
        ExpiresDefault "access plus 1 year"
    </FilesMatch>
    ExpiresByType image/gif "access plus 1 year"
    ExpiresByType image/png "access plus 1 year"
    ExpiresByType image/jpg "access plus 1 year"
    ExpiresByType image/jpeg "access plus 1 year"
    ExpiresByType image/svg+xml "access plus 1 year"

    # Fonts
    <FilesMatch \.(eot|ttf|otf|svg|woff|woff2)$>
        ExpiresDefault "access plus 1 year"
    </FilesMatch>
    ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
    ExpiresByType application/x-font-ttf "access plus 1 year"
    ExpiresByType application/x-font-otf "access plus 1 year"
    ExpiresByType application/x-font-woff "access plus 1 year"
    ExpiresByType application/font-woff2 "access plus 1 year"

</IfModule>

Disabilitando mod_expireso commentando quanto sopra e facendo un forte aggiornamento nel browser (gli utenti Mac tengono premuto Shift + Command + r) le modifiche dovrebbero iniziare a essere visualizzate ogni volta che le apporti.


0

Ho appena avuto anche questo problema!

Si scopre nel mio caso che era un problema di autorizzazione.

cat /etc/apache2/logs/error_log | grep static

e

tail -f / etc / apache2 / logs / error_log | grep statico

mi ha dato informazioni interessanti (forse il tuo file di registro potrebbe essere nominato in modo diverso)

prima ho visto:

[Wed Oct 30 12:19:34.287356 2019] [core:crit] [pid 27633] (13)Permission denied: [client 24.48.87.7:16680] AH00529: /home/[datuser]/public_html/pub/static/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable and that '/home/[datuser]/public_html/pub/static/' is executable

si è scoperto che la mia cartella pub / static non era eseguibile. Quindi dopo aver risolto quello che ho ottenuto

[Wed Oct 30 12:22:46.490759 2019] [:error] [pid 27290] [client ipremoved] SoftException in Application.cpp:267: File "/home/[datuser]/public_html/pub/static.php" is writeable by group, referer: [url removed]
[Wed Oct 30 12:22:46.490961 2019] [core:error] [pid 27290] [client ipremoved] End of script output before headers: static.php, referer: [url removed]

Sul nostro server apache non può servire file scrivibili per gruppo per qualche motivo, credo che alcuni elementi di sicurezza di Cpanel. Quindi ho dovuto impostare 644 su tutti i file sotto pub e finalmente i miei symlink hanno iniziato a essere creati !!

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.