Magento 2 geliştirici modu statik dosyaları otomatik olarak yeniden oluşturmaz


15

Geliştirici modunda bir Magento 2.0.2 yüklemem var ve hala CSS'imde bir değişiklik yaptığımda statik görünüm dosyalarını yeniden oluşturmaya nasıl zorlayacağımı anlayamıyorum.

Çalıştırarak geliştirici modunda olduğumu doğruladım php bin/magento deploy:mode:show

Açık bu sayfayı bu geliştirici modu önbelleğe statik görünüm dosyalarını devre dışı bırakır söylüyor, ama bu benim için durum böyle değildir.

Bu çözümde belirtildiği di.xmlgibi düzenlemeye çalıştım ama Magento'nun davranışını değiştirmedi.

Magento'ya statik görünüm dosyalarını otomatik olarak yeniden oluşturmasını nasıl söyleyebilirim?

Yanıtlar:


4

Geliştirici modunda, M2 statik dosyalar oluşturmaz. Çeşitli modüllerden kendilerine sembolik bağlantılar oluşturmalıdır. Bununla birlikte, setup: static-content: deploy komutunu çalıştırdıysanız ve bu dosyaları yerleştirdiyseniz, bunları güncellemez. Tüm statik dosyaları kaldırmayı deneyin ve Magento'nun bu dosyalara bağlanıp bağlanmadığına bakın (sembolleriniz varsa gerçek dosyaları kaldırmamaya dikkat edin)


1
(.Htaccess dosyasını silmeden) pub / statik tüm içeriğini silmeyi denedim ve işe yaramadı. Eski dosyalar yeniden oluşturulmuş gibi görünüyor.
AlexandreC

Şu anda, güncellenmiş içeriği almanın tek yolu Magento Önbellek Yönetimi sayfasındaki 'Statik Dosya Önbelleğini Temizle'yi tıklamaktır.
AlexandreC

4
Aynı sorun geliştirici modunda oluşturulan sorun vardı; sonra .htaccesdosyayı sildiğimi fark ettim pub/static; bir sonraki istekte .htaccessdosyayı geri yükledikten sonra pub/statictüm semboller rejenere; Umarım yardımcı olur.
Alessandro Ronchi

Şu anda Magento 2.0.6 ile aynı problemim var. -Dosyasını yeniden eklemeyi denedim .htaccess(nginx'i çalıştırdım, bu yüzden çok şey yapacağını düşünmedim) ve beklendiği gibi işe yaramadı. Daha önce
sembollerim

1
Yine pub/staticde otomatik üretildiğini düşündüğümüz gibi , bir noktada manuel olarak da sildik ve aynı problemle karşılaştık. Apache2 / php7 kurulumumuzda artık eksik olan .htaccess dosyası bundan gerçekten sorumlu. Orijinal .htaccess geliştirici modu yeniden oluşturduktan sonra tekrar iyi çalışıyordu. İşte son .htacces bağlantısı: github.com/magento/magento2/blob/develop/pub/static/.htaccess
Jey DWork

1

Bana da aynısı oldu. Siteyi başka bir sunucuya taşıdıktan sonra, dosya izinlerini doğru ayarlamadığım ortaya çıktı.

Koştum find . -type d -exec chmod 770 {} \; && find . -type f -exec chmod 660 {} \; && chmod u+x bin/magentove bu sorunumu çözdü.

Daha fazla bilgi: Magento 2: Paylaşımlı barındırma için Önerilen Dosya İzni

Güncelleme: pub klasörünün (magento / pub) ve temel klasörlerin okuma ve yazma izinlerine sahip olduğundan emin olun.


2
Kim indirildi: neden?
Chris K

0

Burada biraz geç, ama aynı sorunu yaşıyordum. Bir developersüre için mod etkinleştirdim, sonra bir nedenden dolayı (muhtemelen bir noktada benim tarafımda bir hata), artık işe yaramadı.

Benim için basit çözüm, modu tekrar geliştiriciye sıfırlamaktı:

php bin/magento deploy:mode:show developer

Not: defaultve sonra ayarlamanız gerekebilir developer.


Bu da yardımcı olmadı. Başka öneriniz var mı?
Adarsh ​​Khatri

0

Statik dosyaları temizlemedikçe, daha az güncellememi göstererek de aynı sorunla karşı karşıya kaldım. Benim için düzeltme devre dışı bırakmak oldu mod_expires. Bu css vb. Önbellekleme oldu

pub/static/.htaccessDosyanın içinde aşağıdakine benzer bir şey olması gerekir:

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

mod_expiresYukarıdakileri devre dışı bırakarak veya yorum yaparak ve tarayıcınızda sert bir yenileme yaparak (Mac Kullanıcıları basılı tutar Shift + Command + r) değişiklikleriniz her yaptığınızda gösterilmeye başlamalıdır.


0

Ben de bu sorunu yaşadım!

Benim durumumda bir izin sorunu olduğu ortaya çıktı.

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

ve

kuyruk -f / etc / apache2 / logs / error_log | grep static

bana ilginç bilgiler verdi (belki günlük dosyanızın adı farklı olabilir)

ilk gördüm:

[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

benim pub / statik klasör yürütülebilir değildi çıktı. Sonra tamir ettikten sonra

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

Bizim sunucu apache bazı nedenlerden dolayı grup tarafından yazılabilir dosyaları sunamıyorum, bazı Cpanel güvenlik şeyler inanıyorum. Bu yüzden pub altındaki tüm dosyalarda 644'ü ayarlamak zorunda kaldım ve sonunda sembollerim oluşturulmaya başladı!

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.