Situasi: Saya menjalankan beberapa percobaan gratis Magento 2 dan memiliki ruang HD terbatas pada VPS. Untuk alasan ini mengurangi ruang HD saya ingin Magento symlink file dalam mode default atau produksi. Saya telah memperhatikan bahwa instalasi Magento 2 default adalah sekitar 420mb setelah situs pertama kali berjalan, ia mencapai sekitar 770mb sehingga 350mb dari ini adalah file yang disalin.
Saya telah memodifikasi: baris app / etc / di.xml:
<item name="default" xsi:type="object">Magento\Framework\App\View\Asset\MaterializationStrategy\Copy</item>
untuk
<item name="default" xsi:type="object">Magento\Framework\App\View\Asset\MaterializationStrategy\Symlink</item>
Ini berfungsi dengan baik dan situs akan membuat symlink dengan benar bahkan ketika dalam mode default. Namun masalahnya adalah bahwa css tidak dibuat atau js-translation.json file yang harus dibuat tetapi tidak:
/pub/static/version1488209436/frontend/Magento/luma/en_US/css/styles-m.css
/pub/static/version1488209436/frontend/Magento/luma/en_US/css/styles-l.css
/pub/static/version1488209436/frontend/Magento/luma/en_US/css/print.css
/pub/static/version1488209436/frontend/Magento/luma/en_US/js-translation.json
Jadi pertanyaannya adalah: bagaimana cara membuat Magento juga menghasilkan file-file ini ketika dalam mode default atau produksi dan menggunakan symlink?
sumber
Jawaban:
app/etc/di.xml
: tambahkan item baru kestategiesList
:Dengan asumsi Anda berada dalam mode pengembang cukup hapus konten
pub/static
dan pergi ke halaman Anda di browser - magento akan membuat ulang konten statis.bekerja untuk saya di Magento 2.1.4 (styles-m.css dihasilkan dan file lain disinkronkan).
semua keajaiban terjadi di
vendor/magento/framework/App/View/Asset/MaterializationStrategy/Factory.php
:Magento hanya membolak-balik
stategiesList
item dan menggunakan stategy pertama yang mendukung aset.Bagaimana membuatnya bekerja dalam mode produksi?
Penafian: peretasan ini mengandung pengeditan file inti. Waspadalah.
semua diuji pada magento 2.1.4
Stores > Configuration > Advanced > Developer > Static Files Settings > No
edit
vendor/magento/framework/App/StaticResource.php
dan buatlaunch
fungsinya seperti ini:hapus konten
pub/static
dan kunjungi url toko Anda di browser.sumber
<item name="asset" xsi:type="object">Magento\Framework\App\View\Asset\MaterializationStrategy\Copy</item>
?Ketika tidak dalam mode produksi, Magento 2 akan mencoba membuat symlink untuk beberapa sumber daya statis. Anda dapat mengubah perilaku itu dengan melakukan hal berikut.
Buka aplikasi / etc / di.xml dan temukan bagian virtualType name = "developerMaterialization". Di bagian itu Anda akan menemukan nama item = "view_preproses" yang perlu dimodifikasi atau dihapus. Anda dapat memodifikasinya dengan mengubah konten dari Magento \ Framework \ App \ View \ Asset \ MaterializationStrategy \ Symlink ke Magento \ Framework \ App \ View \ Asset \ MaterializationStrategy \ Copy
Hapus file di bawah pub / statis. Tolong jangan hapus file .htaccess.
sumber