JS dan CSS yang digabungkan tidak berfungsi saat mode Produksi

24

Saya berada dalam mode pengembang , semuanya hebat, ketika saya berubah ke mode Produksi , opsi Gabungan CSS dan JS tampaknya diabaikan, itu kembali mendaftar semua css dan js.

Juga halaman produk hanya menampilkan gambar-gambar produk dalam mode pengembang, setelah berubah ke mode produksi mereka menghilang.

Adakah pemikiran untuk membantu saya?


Intinya adalah, saya melakukannya.

Inilah yang saya lakukan secara berurutan:

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

Dan bahkan sebelum memulai, opsi Gabung adalah YA dan saya dalam mode pengembang.

BrunoBueno
sumber
Halo, Sudahkah Anda mendapatkan solusi untuk masalah ini, saya mendapatkan masalah yang sama di magento 2.0.7. Tolong beri solusi jika Anda punya, Terima kasih
Ashish Jagnani
masalah yang sama yang saya hadapi tolong bantu saya
Rv Singh

Jawaban:

19

Saya baru saja melakukan yang berikut dan masalahnya terpecahkan:

setup bin / magento: tingkatkan

pengindeks bin / magento: indeks ulang

penyebaran bin / magento: mode: atur produksi -s

# Inilah rahasianya: jalankan di: compile setelah produksi
setup bin / magento: di: compile  

setup bin / magento: static-content: deploy
BrunoBueno
sumber
2
saya mencoba cara yang sama tetapi tidak berhasil
Pradeep Kumar
Ini berhasil untuk saya.
dchayka
Jika saya menjalankan perintah "production -s", ini akan mengosongkan situs saya dan memberikan kesalahan yang sangat luar biasa: Peringatan: sertakan (/ siteRoot / html / var / view_preprocessed / html / vendor / magento / module-theme / view / base / templates / root. phtml): gagal membuka aliran: Tidak ada file atau direktori di /siteRoot/html/vendor/magento/framework/View/Result/Page.php pada baris 312
Jai
Lain - yang bekerja untuk saya. Kalau-kalau ada orang lain yang punya masalah saya. CSS akan mengecilkan dan membundel, tetapi JS tidak akan, meskipun memiliki opsi yang diaktifkan di admin. Menambahkan -s dalam mode produk yang ditetapkan membuat semua perbedaan. Juga, backend JAUH lebih cepat sekarang juga. Saya menggunakan urutan dan perintah yang sama, tetapi "-s" yang membuat perbedaan, Terima kasih
dawhoo
Apakah saya harus terlebih dahulu beralih kembali ke mode pengembangan? Saya melakukan apa yang Anda sebutkan, tetapi tidak ada perbedaan ....
Jilco Tigchelaar
2

Pastikan Anda juga memeriksa file konfigurasi NGINX Anda.

Jika ada $MAGE_MODEset variabel di sana itu perlu diubah productionjuga, dan menyimpan file

Setelah itu, Anda perlu memuat ulang atau memulai ulang NGINX tergantung pada preferensi Anda.

sudo service nginx reload

ATAU

sudo service nginx restart

Setelah itu periksa app/etc/env.phpdan lihat apakah MAGE_MODEkunci array diatur productionjuga jika tidak mengubahnya productionatau Anda dapat menggunakan perintah

php bin/magento deploy:mode:set production

Setelah Anda menjalankan perintah, periksa apakah nilainya berubah app/etc/env.php, terkadang ada masalah izin.

Selanjutnya, bersihkan pub/staticfoldernya.

rm -rf pub/static/*

Hapus / Bilas cache Anda

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

Sekarang Anda siap untuk menjalankan penyebaran konten statis

php bin/magento setup:static-content:deploy

Semoga ini membantu.

Atish Goswami
sumber
1

Saya memiliki masalah serupa. Penyebab tidak adanya gambar adalah karena ada kesalahan pada file JS setelah memperkecil JS. Anda dapat memverifikasinya di browser Anda (pembakar dll).

... / div> '; return __p};}) (jendela, dokumen, lokasi, jenis jQuery! ==' undefined '&& jQu

Saya memecahkan ini dengan menghapus semua file di var / cache /dan pub / static / dan setup: static-content: deploy lagi

Tetapi masih ada masalah lain, ini tentang braintree jika Anda mengaktifkannya. Braintree tidak muncul karena kesalahan JS lainnya.

Kesalahan: Kesalahan skrip untuk: https://js.braintreegateway.com/v2/braintree.js http://requirejs.org/docs/errors.html#scripterror

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

Untuk saat ini, saya hanya tidak menggunakan fungsi js minify untuk menghindari masalah sampai solusi ditemukan.


1

Ini adalah langkah-langkah yang berhasil bagi saya di Magento ver. 2.1.7 dengan Redis (tidak menjalankan Varnish). Namun, masih belum jelas apakah semuanya berjalan sebagaimana mestinya. JS diperkecil dan dibundel (tidak jelas apa yang seharusnya dilakukan gabungan). CSS diperkecil (tidak melihatnya digabungkan).

  1. Matikan semua cache Magento.
  2. Bersihkan cache redis.
  3. Aktifkan semua konfigurasi css / js (baik di admin atau melalui database).
  4. Hasilkan file statis.
  5. Bersihkan cache Magento (baris perintah). Untuk keamanan (mungkin tidak diperlukan).
  6. Hapus opcache (jika tidak disetel ke refresh otomatis).
  7. Perbarui halaman muka frontend (dan periksa konsol browser untuk kesalahan).
  8. Aktifkan 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

Cukup menyalakan konfigurasi dan membersihkan cache tidak berhasil - konsol browser frontend melaporkan banyak kesalahan js.


Menggabungkan akan menggabungkan file Anda menjadi satu.
ladle3000

0

Sudahkah Anda mencoba menyiram JavaScript / CSS? Anda dapat melakukan ini di bawah System> Cache Management dan kemudian tekan tombol yang ada di bagian bawah tabel di sebelah kiri 'Flus JavaScript / CSS Cache'


YEP .... siram js, lalu cache. Tidak ada yang berubah. Namun, jika saya beralih ke mode Pengembang, penggabungan berfungsi.
BrunoBueno

0

Anda harus menggunakan kembali statis setelah mengaktifkan opsi ini dalam mode produksi.


Intinya adalah, saya melakukannya. Saya hanya memposting di sini apa yang saya lakukan.
BrunoBueno

Jika tidak berhasil maka masalah mungkin di izin. Dapatkah Anda memeriksa akses / kesalahan log server web Anda
KAndy

0

Saya baru saja melakukan yang berikut dan masalahnya terpecahkan.

bin/magento setup:upgrade

bin/magento indexer:reindex

bin/magento deploy:mode:set production -s

bin/magento setup:di:compile

(Inilah rahasianya, untuk menjalankan di: kompilasi setelah produksi)

bin/magento setup:static-content:deploy

0

Saya punya masalah ketika JavaScript tidak dikompilasi bekerja pemilih jquery.

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

Tapi begitu dikompilasi, dikompresi dan bergabung, saya kemudian perlu kode: -

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

Jangan bertanya mengapa, tampaknya ketika membaca langsung dari cache, kode yang diperlukan dijalankan sebelum domReady dan elemen-elemen melampirkan ke elemen yang berbeda di beberapa halaman yang berbeda.

Dallas Clarke
sumber
-1

Hapus cache secara manual var / cache dan hapus sesi secara manual var / session

Usman Fayyaz
sumber
1
Menghapus var/sessiontidak pernah merupakan solusi yang tepat. magento.stackexchange.com/questions/94589/…
Fabian Schmengler
-1
  1. Harap aktifkan opsi "Aktifkan Bundling JavaScript"

    store-> konfigurasi-> lanjutan-> pengembang-> pengaturan javascript->

  2. Aktifkan Bundling JavaScript diatur ke "ya" Dan flush cache

Sagar Dobariya
sumber
2
Nasehat serampangan yang tidak ada hubungannya dengan pertanyaan.
Ladle3000