Chế độ nhà phát triển Magento 2 không tự động tạo lại các tệp tĩnh


14

Tôi có cài đặt Magento 2.0.2 ở chế độ nhà phát triển và tôi vẫn không thể tìm ra cách buộc nó tạo lại các tệp xem tĩnh bất cứ khi nào tôi thực hiện thay đổi trong CSS của mình.

Tôi đã xác minh rằng tôi đang ở chế độ nhà phát triển bằng cách chạy php bin/magento deploy:mode:show

Trên trang này có nói rằng chế độ nhà phát triển sẽ vô hiệu hóa bộ đệm ẩn của tệp xem tĩnh, nhưng đó không phải là trường hợp của tôi.

Tôi đã cố chỉnh sửa di.xmlnhư đã đề cập trong giải pháp này nhưng nó không thay đổi hành vi của Magento.

Làm cách nào tôi có thể yêu cầu magento tự động tạo lại các tệp xem tĩnh?

Câu trả lời:


4

Trong chế độ nhà phát triển, M2 không tạo tệp tĩnh. Nó sẽ tạo ra các liên kết tượng trưng cho chúng từ các mô-đun khác nhau. Tuy nhiên, nếu bạn đã chạy setup: static-content: triển khai và có các tệp đó, nó sẽ không cập nhật chúng. Hãy thử xóa tất cả các tệp tĩnh và xem Magento có liên kết với chúng không (cẩn thận không xóa các tệp thực tế nếu bạn có liên kết tượng trưng)


1
Tôi đã thử xóa toàn bộ nội dung của pub / static (mà không xóa tệp .htaccess) và nó không hoạt động. Có vẻ như các tập tin cũ đã được tái tạo.
AlexandreC

Hiện tại, cách duy nhất tôi có thể nhận được nội dung được cập nhật là nhấp vào 'Flush Cache Files Cache' trong trang Quản lý bộ đệm Magento.
AlexandreC

4
Tôi có cùng một vấn đề về các liên kết tượng trưng không được tạo trong chế độ nhà phát triển; sau đó tôi nhận ra mình đã xóa .htaccestập tin khỏi pub/static; khi tôi khôi phục .htaccesstệp trong pub/staticyêu cầu tiếp theo, sẽ tạo lại tất cả các liên kết tượng trưng; hy vọng nó giúp.
Alessandro Ronchi

Tôi có cùng một vấn đề hiện tại với Magento 2.0.6. Đã thử thêm lại .htaccess-file (Tôi chạy nginx, vì vậy tôi không nghĩ nó sẽ làm được gì nhiều), và như mong đợi, nó không hoạt động. Trước đây các liên kết tượng trưng của tôi đã được tạo, nhưng bây giờ không còn nữa ...
Giel Berkers

1
Vì chúng tôi nghĩ rằng pub/staticdù sao cũng được tự động hóa, chúng tôi cũng đã xóa nó bằng tay tại một thời điểm và gặp vấn đề tương tự. Có vẻ như trong thiết lập apache2 / php7 của chúng tôi, tệp .htaccess hiện bị thiếu thực sự chịu trách nhiệm cho việc này. Sau khi tạo lại chế độ nhà phát triển .htaccess ban đầu đã hoạt động tốt trở lại. Tại đây, liên kết đến .htacces gần đây: github.com/magento/magento2/blob/develop/pub/static/.htaccess
Jey DWork

1

Điều tương tự cũng xảy ra với tôi. Sau khi chuyển trang web sang máy chủ khác, hóa ra tôi đã không đặt quyền truy cập tệp chính xác.

Tôi đã chạy find . -type d -exec chmod 770 {} \; && find . -type f -exec chmod 660 {} \; && chmod u+x bin/magento và điều đó đã giải quyết vấn đề của tôi.

Thêm thông tin: Magento 2: Giấy phép tệp được đề xuất cho lưu trữ được chia sẻ

Cập nhật: đảm bảo thư mục pub (magento / pub) và các thư mục bên dưới có quyền đọc và ghi.


2
Ai bị hạ bệ: tại sao?
Chris K

0

Bit ở đây muộn, nhưng tôi đã gặp vấn đề tương tự. Tôi đã developerbật chế độ một thời gian, sau đó vì một số lý do (có thể là lỗi của tôi tại một số điểm), nó dường như không còn hoạt động.

Giải pháp đơn giản cho tôi là thiết lập lại chế độ cho nhà phát triển:

php bin/magento deploy:mode:show developer

NB: Bạn có thể cần phải thiết lập nó defaultvà sau đó developer.


Điều này cũng không giúp được gì. Bất cứ một đề nghị nào khác?
Adarsh ​​Khatri

0

Tôi đã phải đối mặt với cùng một vấn đề với các bản cập nhật ít hơn của tôi hiển thị trừ khi tôi xóa các tệp tĩnh của mình. Cách khắc phục cho tôi là vô hiệu hóa mod_expires. Đây là bộ nhớ đệm css và vv

Bên trong pub/static/.htaccesstập tin bạn sẽ có một cái gì đó như sau:

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

Bằng cách vô hiệu hóa mod_expireshoặc nhận xét ở trên và thực hiện làm mới cứng trong trình duyệt của bạn (Người dùng Mac nhấn giữ Shift + Command + r), các thay đổi của bạn sẽ bắt đầu hiển thị mỗi khi bạn thực hiện chúng.


0

Tôi chỉ có vấn đề này quá!

Hóa ra trong trường hợp của tôi, đó là một vấn đề cho phép.

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

đuôi -f / etc / apache2 / log / error_log | grep tĩnh

đã cho tôi thông tin thú vị (có thể tệp nhật ký của bạn có thể được đặt tên khác)

đầu tiên tôi thấy:

[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

Hóa ra thư mục pub / static của tôi không thể thực thi được. Sau khi sửa xong tôi đã nhận

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

Trên máy chủ của chúng tôi, apache không thể phục vụ các tệp có thể ghi theo nhóm vì một số lý do, một số nội dung bảo mật Cpanel tôi tin. Vì vậy, tôi đã phải đặt 644 trên tất cả các tệp trong quán rượu và cuối cùng các liên kết tượng trưng của tôi bắt đầu được tạo !!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.