Mode pengembang Magento 2 tidak membuat ulang file statis secara otomatis

14

Saya memiliki instalasi Magento 2.0.2 dalam mode pengembang dan saya masih tidak tahu bagaimana memaksanya untuk membuat ulang file tampilan statis setiap kali saya membuat perubahan dalam CSS saya.

Saya memverifikasi bahwa saya dalam mode pengembang dengan menjalankan php bin/magento deploy:mode:show

Pada halaman ini dikatakan bahwa mode pengembang menonaktifkan caching file tampilan statis, tetapi itu tidak terjadi pada saya.

Saya mencoba mengedit di.xmlseperti yang disebutkan dalam solusi ini, tetapi itu tidak mengubah perilaku Magento.

Bagaimana saya bisa memberitahu magento untuk secara otomatis membuat ulang file tampilan statis?

AlexandreC
sumber

Jawaban:

4

Dalam mode pengembang, M2 tidak menghasilkan file statis. Itu harus membuat symlink kepada mereka dari berbagai modul. Namun jika Anda telah menjalankan pengaturan: konten statis: menyebarkan dan memiliki file-file itu di tempat, itu tidak akan memperbaruinya. Coba hapus semua file statis dan lihat apakah Magento menautkannya (hati-hati jangan sampai menghapus file yang sebenarnya jika Anda memiliki symlink)

Petar Dzhambazov
sumber
1
Saya mencoba menghapus seluruh isi pub / statis (tanpa menghapus file .htaccess) dan tidak berfungsi. Sepertinya file lama dibuat ulang.
AlexandreC
Saat ini, satu-satunya cara saya bisa mendapatkan konten yang diperbarui adalah dengan mengklik 'Flush Static Files Cache' di halaman Magento Cache Management.
AlexandreC
4
Saya memiliki masalah symlink yang sama yang tidak dihasilkan dalam mode pengembang; kemudian saya menyadari bahwa saya telah menghapus .htaccesfile dari pub/static; setelah saya mengembalikan .htaccessfile dalam pub/staticpermintaan berikutnya membuat ulang semua symlink; semoga membantu.
Alessandro Ronchi
Saya memiliki masalah yang sama dengan Magento 2.0.6. Mencoba menambahkan kembali file .htaccess-file (saya menjalankan nginx, jadi saya tidak berpikir itu akan berbuat banyak), dan seperti yang diharapkan, itu tidak berhasil. Sebelumnya symlink saya dibuat, tetapi sekarang tidak lagi ...
Giel Berkers
1
Karena kami pikir pub/staticsudah di-autogenerasi, kami juga menghapusnya secara manual pada satu titik dan mengalami masalah yang sama. Sepertinya dalam pengaturan apache2 / php7 kami, file .htaccess yang sekarang hilang benar-benar bertanggung jawab untuk ini. Setelah membuat ulang mode pengembang .htaccess asli berfungsi dengan baik lagi. Di sini tautan ke .htacces terbaru: github.com/magento/magento2/blob/develop/pub/static/.htaccess
Jey DWork
1

Hal yang sama terjadi pada saya. Setelah memindahkan situs ke server lain, ternyata saya tidak mengatur izin file yang benar.

Saya berlari find . -type d -exec chmod 770 {} \; && find . -type f -exec chmod 660 {} \; && chmod u+x bin/magentodan itu memecahkan masalah saya.

Info lebih lanjut: Magento 2: Izin File yang Disarankan untuk hosting bersama

Pembaruan: pastikan folder pub (magento / pub) dan folder yang mendasarinya telah membaca dan menulis izin.

Tristan
sumber
2
Siapa yang kalah: mengapa?
Chris K
0

Agak terlambat di sini, tapi saya mengalami masalah yang sama. Saya memiliki developermode yang diaktifkan untuk beberapa waktu, kemudian karena beberapa alasan (kemungkinan kesalahan pada bagian saya di beberapa titik), sepertinya tidak lagi berfungsi.

Solusi sederhana bagi saya adalah mengatur ulang mode ke pengembang lagi:

php bin/magento deploy:mode:show developer

NB: Anda mungkin perlu mengaturnya defaultlalu developer.

David Wilkinson
sumber
Ini juga tidak membantu. Ada saran lain?
Adarsh ​​Khatri
0

Saya menghadapi masalah yang sama dengan pembaruan saya yang kurang terlihat, kecuali jika saya menghapus file statis saya. Perbaikan untuk saya adalah menonaktifkan mod_expires. Ini caching css dan lain-lain

Di dalam pub/static/.htaccessfile Anda akan memiliki sesuatu seperti berikut:

<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>

Dengan menonaktifkan mod_expiresatau mengomentari hal di atas dan melakukan penyegaran di browser Anda (Pengguna Mac menahan Shift + Command + r) perubahan Anda akan mulai muncul setiap kali Anda membuatnya.

MagentoMan
sumber
0

Saya baru saja mengalami masalah ini juga!

Ternyata dalam kasus saya itu adalah masalah izin.

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

dan

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

memberi saya info menarik (mungkin file log Anda mungkin diberi nama berbeda)

pertama saya melihat:

[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

ternyata folder pub / statis saya tidak dapat dieksekusi. Lalu setelah memperbaiki itu saya dapatkan

[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]

Pada server apache kami tidak dapat melayani file yang dapat ditulis oleh grup untuk beberapa alasan, beberapa hal keamanan Cpanel saya percaya. Jadi saya harus mengatur 644 pada semua file di bawah pub dan akhirnya symlink saya mulai dibuat !!

Pierre-Verthume Larivière
sumber