Birleştirilmiş JS ve CSS, Üretim modu sırasında çalışmaz


24

I was geliştirici modunda ne zaman her şey harikaydı, Üretim moduna değişti , CSS ve JS Birleştirilmiş seçenekleri geri tüm css ve js listeleme oldu, ihmal gibi görünüyor.

Ayrıca ürün sayfası sadece geliştirici modundaki resimleri gösterir, üretim moduna geçtikten sonra kaybolurlar.

Bana yardım edecek bir fikrin var mı?


Mesele şu ki, yapıyorum.

İşte sırayla yaptığım şey:

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

Ve başlamadan önce, Birleştirme seçenekleri EVET ve ben geliştirici moddaydım.


Merhaba, bu sorunun herhangi bir çözümü var mı, magento 2.0.7 de aynı sorunu alıyorum Varsa lütfen çözümü verin, Thanks
Ashish Jagnani 3:16

aynı sorunla karşı karşıyayım lütfen bana yardım edin
Rv Singh

Yanıtlar:


19

Ben sadece aşağıdakileri yaptım ve sorun çözüldü:

bin / magento kurulumu: yükseltme

bin / magento indeksleyici: reindex

bin / magento konuşlandırma: kip: prodüksiyonu ayarla

# İşte sırrı: di çalıştırın: üretimden sonra derlemek
bin / magento kurulumu: di: derleme  

bin / magento kurulumu: statik içerik: dağıtma

2
Ben de aynı şekilde denedim ama şansım yok
Pradeep Kumar

Bu benim için çalıştı.
dchayka

Eğer "production -s" komutunu uygularsam sitemi boş bırakır ve çok olağandışı bir hata veririm: Uyarı: include (/ siteRoot / html / var / view_preprocessed / html / vendor / magento / module-theme / view / base / templates / root). phtml): akışı açamadı: 312 numaralı satırda /siteRoot/html/vendor/magento/framework/View/Result/Page.php adresinde böyle bir dosya veya dizin yok
Jai

Başka - bu benim için çalıştı. Başka birinin problemi olması durumunda ben de öyleydim CSS, küçültecek ve paketlenecekti, ancak yöneticide seçenekleri etkinleştirilmiş olmasına rağmen, JS kullanmayacaktı. Ayarlanan ürün modunda -s eklemek tüm farkı yarattı. Ayrıca, arka uç da şimdi çok daha hızlı. Aynı emir ve emirleri kullanıyordum, ama farkı
yaratan

Öncelikle geliştirme moduna geri dönmem gerekir mi? Bahsettiğin şeyi yaptım ama bir fark yok ....
Jilco Tigchelaar

2

NGINX yapılandırma dosyanızı da kontrol ettiğinizden emin olun.

Eğer burada bir değişken $MAGE_MODEvarsa, o da değiştirilmeli productionve dosyayı kaydetmelisiniz.

Bundan sonra tercihinize bağlı olarak NGINX'i yeniden yüklemeniz veya yeniden başlatmanız gerekir.

sudo service nginx reload

VEYA

sudo service nginx restart

Bundan sonra kontrol app/etc/env.phpve görmek MAGE_MODEdizi anahtarı olarak ayarlanır productionyanı olarak değiştirin değilse productionveya komutunu kullanabilirsiniz

php bin/magento deploy:mode:set production

Komutu uyguladıktan sonra değerin değişip değişmediğini kontrol edin app/etc/env.php, bazen izin sorunları olabilir.

Sonra pub/staticklasörü temizleyin .

rm -rf pub/static/*

Önbelleğinizi temizleyin / temizleyin

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

Artık statik içerik dağıtımını gerçekleştirmeye hazırsınız

php bin/magento setup:static-content:deploy

Bu yardımcı olur umarım.


1

Bende de benzer bir sorun var. Görüntü olmamasının nedeni JS'yi küçültme işleminden sonra JS dosyasında bir hata olmasıdır . Tarayıcınızda (firebug vb.) Doğrulayabilirsiniz.

... / div> '; return __p};}) (pencere, belge, konum, typeof jQuery! ==' undefined '&& jQu

Bunu var / cache / ' deki tüm dosyaları kaldırarak çözdüm.ve pub / static / ve setup: static-content: tekrar konuşlandır

Ama başka bir sorun daha var, eğer etkinleştirirseniz, bu beyin jimnastiği ile ilgili. Braintree, başka bir JS hatası nedeniyle görünmüyor.

Hata: için komut dosyası hatası: https://js.braintreegateway.com/v2/braintree.js http://requirejs.org/docs/errors.html#scripterror

... Hata (id, msg, err, needsModules) {var e = yeni Hata (msg + '\ nhttp: //requirejs.org/doc ...

Şimdilik, çözüm bulunana kadar sorunu önlemek için küçültülmüş js işlevini kullanmıyorum.


1

Bunlar benim için Magento ver'de çalışan adımlar. Redis ile 2.1.7 (vernik çalışmıyor). Ancak, her şeyin olması gerektiği gibi çalıştığını hala net değil. JS küçültülmüş ve paketlenmiştir (ne birleştirme yapılması gerektiği açık değil). CSS küçültülmüş (birleştiğini görmemek).

  1. Tüm Magento önbelleğini kapat.
  2. Redis önbelleğini temizle.
  3. Beş css / js yapılandırmasını da açın (yönetici içinde veya veritabanı aracılığıyla).
  4. Statik dosyalar oluşturun.
  5. Magento önbelleğini temizle (komut satırı). Güvenlik için (gerekli olmayabilir).
  6. Opcache'i temizle (otomatik yenileme olarak ayarlanmamışsa).
  7. Ön uç ana sayfasını yenileyin (ve tarayıcı konsolunda hata olup olmadığını kontrol edin).
  8. Magento önbelleğini aç.

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

Basitçe yapılandırmaları açmak ve önbelleği temizlemek işe yaramadı - ön tarayıcı konsolu bir çok js hatası bildirdi.


Birleştirme, dosyalarınızı bir araya getirir.
Kepçe3000

0

JavaScript / CSS’yi silmeyi denediniz mi? Bunu Sistem> Önbellek Yönetimi altında yapabilir ve ardından soldaki 'Flus JavaScript / CSS Cache' tablosundaki tablonun altındaki düğmeye basabilirsiniz.


YEP .... js'yi yıkayın, sonra önbellekleyin. Hiçbir şey değişmez. Ancak, Geliştirici moduna geçersem, birleştirme çalışır.
BrunoBueno

0

Bu seçeneği üretim modunda etkinleştirdikten sonra statik olarak yeniden konuşlandırmanız gerekir.


Mesele şu ki, yapıyorum. Az önce buraya ne yaptığımı gönderdim.
BrunoBueno

İşe yaramazsa sorun belki izinli olabilir. Web sunucusu erişimini / hata kayıtlarını kontrol edebilir misin
KAndy

0

Ben sadece aşağıdakileri yaptım ve sorun çözüldü.

bin/magento setup:upgrade

bin/magento indexer:reindex

bin/magento deploy:mode:set production -s

bin/magento setup:di:compile

(Burada di'yi çalıştırmanın sırrı buydu: üretim sonrası derleme)

bin/magento setup:static-content:deploy

0

JavaScript derlenmemişse, jquery selector çalıştığında sorun yaşadım.

$ ('# my_element'). click (function () {alert ('Merhaba Dünya');});

Ancak bir kez derlendikten, sıkıştırıldıktan ve katıldıktan sonra kodlamam gerekiyor: -

$ ('body #my_element'). click (function () {alert ('Merhaba Dünya');});

Neden diye sorma, doğrudan önbellekten okurken, requjs kodunun domReady'den önce çalıştığını ve öğelerin bazı sayfalarda farklı öğelere eklendiğini göründüğü gibi görünmüyor.



-1
  1. Lütfen "JavaScript Paketini Etkinleştir" seçeneğini de etkinleştirin

    mağaza-> konfigürasyon-> gelişmiş-> geliştirici-> javascript ayarı->

  2. JavaScript Paketini "evet" olarak ayarla ve önbelleği temizle


2
Soruyla hiçbir ilgisi olmayan tehlike tavsiyesi.
Kepçe3000
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.