โหมดผู้พัฒนา Magento 2 ไม่ได้สร้างไฟล์สแตติกใหม่โดยอัตโนมัติ


15

ฉันมีการติดตั้ง Magento 2.0.2 ในโหมดนักพัฒนาซอฟต์แวร์และฉันยังไม่สามารถหาวิธีบังคับให้สร้างไฟล์มุมมองแบบคงที่ใหม่ได้ทุกครั้งที่มีการเปลี่ยนแปลง CSS

ฉันตรวจสอบว่าฉันอยู่ในโหมดนักพัฒนาซอฟต์แวร์โดยเรียกใช้ php bin/magento deploy:mode:show

ในหน้านี้มีข้อความระบุว่าโหมดผู้พัฒนาปิดใช้งานการแคชไฟล์มุมมองแบบสแตติก แต่นั่นไม่ใช่กรณีของฉัน

ฉันพยายามแก้ไขสิ่งdi.xmlที่กล่าวถึงในโซลูชันนี้แต่มันไม่ได้เปลี่ยนพฤติกรรมของ Magento

ฉันจะบอก magento ให้สร้างไฟล์มุมมองคงที่ใหม่โดยอัตโนมัติได้อย่างไร

คำตอบ:


4

ในโหมดผู้พัฒนา M2 ไม่สร้างไฟล์คงที่ มันควรสร้าง symlink ให้พวกเขาจากโมดูลต่างๆ อย่างไรก็ตามหากคุณรันการติดตั้ง: เนื้อหาสแตติก: ปรับใช้และมีไฟล์เหล่านั้นแล้วไฟล์นั้นจะไม่อัปเดต ลองลบไฟล์สแตติกทั้งหมดและดูว่า Magento ลิงก์ไปยังไฟล์เหล่านั้นหรือไม่ (โปรดระวังอย่าลบไฟล์จริงถ้าคุณมี symlink)


1
ฉันพยายามลบเนื้อหาทั้งหมดของ pub / static (โดยไม่ลบไฟล์. htaccess) และมันไม่ทำงาน ดูเหมือนว่าไฟล์เก่าจะถูกสร้างใหม่
AlexandreC

ปัจจุบันวิธีเดียวที่ฉันสามารถรับเนื้อหาที่อัปเดตคือการคลิก 'ล้างแคชไฟล์แบบคงที่' ในหน้าการจัดการแคชแบบวีโอไอพี
AlexandreC

4
ฉันมีปัญหาเดียวกันกับ symlink ที่ไม่ได้ถูกสร้างขึ้นในโหมดนักพัฒนาซอฟต์แวร์ จากนั้นฉันก็รู้ว่าฉันได้ลบ.htaccesไฟล์จากpub/static; เมื่อฉันกู้คืน.htaccessไฟล์ในpub/staticคำขอถัดไปจะสร้าง symlink ทั้งหมดขึ้นใหม่ หวังว่ามันจะช่วย
Alessandro Ronchi

ฉันมีปัญหาเดียวกันกับ Magento 2.0.6 ในปัจจุบัน พยายามเพิ่ม.htaccessไฟล์อีกครั้ง(ฉันเรียกใช้ nginx ดังนั้นฉันจึงไม่คิดว่ามันจะทำอะไรได้มาก) และอย่างที่คาดไว้มันไม่ทำงาน ก่อนหน้านี้ symlinks ของฉันถูกสร้างขึ้น แต่ตอนนี้ไม่ได้อีกต่อไป ...
Giel Berkers

1
เนื่องจากเราคิดว่าpub/staticมีการสร้างอัตโนมัติอีกครั้งเราก็ลบมันด้วยตนเองเมื่อถึงจุดหนึ่งและพบปัญหาเดียวกัน ดูเหมือนว่าในการตั้งค่า apache2 / php7 ของเราไฟล์. htaccess ที่ขาดหายไปในตอนนี้เป็นผู้รับผิดชอบสิ่งนี้ หลังจากสร้างโหมดนักพัฒนา. htaccess ขึ้นใหม่แล้วก็ทำงานได้ดีอีกครั้ง นี่คือลิงค์ไปยัง
htacces

1

เกิดขึ้นกับฉันเหมือนกัน หลังจากย้ายไซต์ไปยังเซิร์ฟเวอร์อื่นมันเปิดออกฉันไม่ได้ตั้งค่าการอนุญาตไฟล์ที่ถูกต้อง

ฉันวิ่งfind . -type d -exec chmod 770 {} \; && find . -type f -exec chmod 660 {} \; && chmod u+x bin/magentoแล้วก็แก้ปัญหาของฉัน

ข้อมูลเพิ่มเติม: Magento 2: การอนุญาตไฟล์ที่แนะนำสำหรับการแชร์โฮสติ้ง

อัปเดต: ตรวจสอบให้แน่ใจว่าโฟลเดอร์ pub (magento / pub) และโฟลเดอร์ต้นแบบมีสิทธิ์อ่านและเขียน


2
ใครก็ตามที่ลงคะแนน: ทำไม
Chris K

0

ดึกที่นี่ แต่ฉันกำลังประสบปัญหาเดียวกัน ฉันdeveloperเปิดใช้งานโหมดเป็นระยะเวลาหนึ่งแล้วด้วยเหตุผลบางอย่าง (น่าจะเป็นข้อผิดพลาดในส่วนของฉันในบางจุด) ดูเหมือนว่ามันจะไม่ทำงานอีกต่อไป

ทางออกที่ง่ายสำหรับฉันคือการรีเซ็ตโหมดเป็นผู้พัฒนาอีกครั้ง:

php bin/magento deploy:mode:show developer

หมายเหตุ: คุณอาจจำเป็นต้องตั้งค่าให้แล้วdefaultdeveloper


สิ่งนี้ก็ไม่ได้ช่วย ข้อเสนอแนะอื่น ๆ ?
Adarsh ​​Khatri

0

ฉันกำลังเผชิญปัญหาเดียวกันกับการปรับปรุงน้อยของฉันไม่แสดงเว้นแต่ว่าฉันล้างไฟล์คงที่ mod_expiresการแก้ไขสำหรับฉันคือการปิดการใช้งาน นี่คือการแคช css และอื่น ๆ

ภายในpub/static/.htaccessไฟล์คุณควรมีสิ่งต่อไปนี้:

<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_expiresหรือแสดงความคิดเห็นข้างต้นและทำการรีเฟรชอย่างหนักในเบราว์เซอร์ของคุณ (ผู้ใช้ Mac ค้างไว้Shift + Command + r) การเปลี่ยนแปลงของคุณควรเริ่มแสดงทุกครั้งที่คุณทำ


0

ฉันเพิ่งมีปัญหานี้ด้วย!

ปรากฎในกรณีของฉันมันเป็นปัญหาสิทธิ์

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

และ

tail -f / etc / apache2 / logs / error_log | grep สถิต

ให้ข้อมูลที่น่าสนใจแก่ฉัน (บางทีไฟล์บันทึกของคุณอาจมีชื่อต่างออกไป)

ครั้งแรกที่ฉันเห็น:

[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

ปรากฏว่าโฟลเดอร์ pub / static ของฉันไม่สามารถใช้งานได้ จากนั้นหลังจากแก้ไขที่ฉันได้รับ

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

ใน apache เซิร์ฟเวอร์ของเราไม่สามารถให้บริการไฟล์ที่เขียนโดยกลุ่มด้วยเหตุผลบางอย่างความปลอดภัย Cpanel บางอย่างที่ฉันเชื่อ ดังนั้นฉันจึงต้องตั้งค่า 644 ในไฟล์ทั้งหมดภายใต้ผับและในที่สุดฉันก็เริ่มสร้าง symlink !!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.