Tái tạo các vấn đề hình ảnh bộ nhớ cache danh mục


19

Tôi đang thực hiện quá trình di chuyển từ Magento 1.9.2.4 sang Magento 2.1.6, sau khi di chuyển hoàn tất, tôi chuyển thư mục phương tiện của M1 sang pub / media M2.

Bây giờ vấn đề là một số hình ảnh không được tạo trong thư mục Catalog / Cache

Ví dụ dưới đây hình ảnh được chuyển đến 404 không tìm thấy

pub/media/catalog/product/cache/f9c7fbe9b524c081a3ccf800cbd963eb/m/s/msj006c-red_2.jpg
pub/media/catalog/product/cache/75eed2686e01eb22cb4050b2f40ddf97/m/s/msj006c-red_2.jpg
pub/media/catalog/product/cache/f9c7fbe9b524c081a3ccf800cbd963eb/m/s/msj006c-red_2.jpg

Tôi chỉ đơn giản là xóa thư mục bộ đệm danh mục và tải lại trang nhưng nó vẫn bị hỏng.

Trang của tôi có 50% hình ảnh bị hỏng

nhập mô tả hình ảnh ở đây

có thể chia sẻ cách giải quyết để khắc phục vấn đề này?


Xin chào, bạn có thể giúp tôi và đề nghị magento.stackexchange.com/questions/283277/iêu
Nagaraju K

Câu trả lời:


28

Bạn nên thử sử dụng lệnh thay đổi kích thước hình ảnh để tạo trước tất cả các thay đổi kích thước cần thiết.

php bin/magento catalog:image:resize

Lệnh này lấy tất cả các kích thước hình ảnh đã được xác định trong XML chủ đề và tạo ra các hình ảnh trong các thư mục chính xác của chúng.

Bạn cũng có thể kiểm tra tài liệu lệnh để biết thêm thông tin http://devdocs.magento.com/guides/v2.1/frontend-dev-guide/theme/theme-images.html


5
FYI - lệnh này hoàn toàn mất thời gian để chạy trên một cửa hàng có kích thước bất kỳ. Chúng tôi đã thấy 17 giờ trên một lần chạy gần đây. Trong những dịp khác, nó cần được chạy vào cuối tuần. Xem: github.com/magento/magento2/issues/8145
Leland

Tôi gặp vấn đề tương tự, tôi chạy hình ảnh cmd này nhưng sau khi xóa bộ đệm, tất cả hình ảnh bị hỏng lần nữa và không có hình ảnh nào trong thư mục bộ đệm
imtiazau

1
Nếu bạn sử dụng danh mục php bin / magento: image: thay đổi kích thước thì sẽ mất hơn 1 ngày, và phương pháp nào tốt nhất khác?
Soundararajan m

@ Alex Dinca bạn có thể xin vui lòng giúp tôi về vấn đề này magento.stackexchange.com/questions/283277/...
Nagaraju K

Tôi đang nhận được hình ảnh Magento 2 từ Magento 1 bằng snipboard.io/JZ2bQR.jpg , làm thế nào để giải quyết vấn đề bộ đệm? @Alex
Đá quý

0

Tôi cũng có vấn đề này và thậm chí thế hệ hình ảnh dòng lệnh được đề cập ở trên không hoạt động. Có vẻ như Magento đang lưu trữ thông tin mà hình thu nhỏ được tạo và thậm chí việc dọn dẹp bộ đệm Magento tiêu chuẩn (cả dòng lệnh hoặc bảng quản trị) không xóa thông tin này khỏi bộ đệm.

Tôi đã xóa tất cả các nội dung thư mục bộ đệm theo cách thủ công và nó đã giúp:

rm -Rf var/cache/*
rm -Rf var/page_cache/*

.. vân vân. Sau đó, hình thu nhỏ của hình ảnh sẽ tạo đúng "theo yêu cầu" trong khi duyệt trang web.


0

Tôi đã có vấn đề chính xác tương tự nhưng với Magento 2.3.2

Đối với tôi, đó là hình ảnh thu nhỏ của sản phẩm có đường dẫn băm bộ đệm sai. Hình ảnh sản phẩm và danh mục là chính xác, nhưng URL ngón tay cái không chính xác và hiển thị trình giữ chỗ hình ảnh Magento std.

Tôi đã sử dụng một chủ đề tùy chỉnh.

Khi sử dụng SHH "Danh mục php bin / magento: hình ảnh: thay đổi kích thước" - điều gì đã xảy ra? Các hình ảnh đã được tạo bằng cách sử dụng chủ đề Luma etc / view.xml thay vì chủ đề tùy chỉnh tệp etc / view.xml.

Vấn đề. Khi xem chủ đề tùy chỉnh của tôi trong trình duyệt sử dụng hình ảnh kích thước khác với chủ đề Luma, Magento không thể tìm thấy hình ảnh và hiển thị lỗi 404.

Việc sửa chữa.

Replace Luma themes etc/view.xml with my custom theme etc/view.xml
Using SHH run "php bin/magento catalog:images:resize

Tôi mất một tuần để tìm cách khắc phục, nhưng giờ mọi thứ đều ổn.


0

Vui lòng xem cấu hình của bạn trong chủ đề bạn đang sử dụng và đảm bảo rằng cấu hình đó trong cửa hàng nguồn của bạn giống với cấu hình trong mục tiêu của bạn. Bạn có thể tham khảo điều này: https://devdocs.magento.com/guides/v2.3/frontend-dev-guide/theme/theme-images.html

Sau đó chạy:

Danh mục php bin / magento: hình ảnh: thay đổi kích thước

Hãy cho tôi biết nếu điều này sẽ giúp!


0

Trả lời vào ngày 20 tháng 11 năm 2019:

Tạo lại bộ nhớ cache hình ảnh bằng lệnh không phải là một giải pháp khả thi cho tất cả vì sẽ mất rất nhiều thời gian cho một số trang web có nhiều sản phẩm. Ngoài ra, tôi gặp phải một số vấn đề như Nếu chúng tôi tạo hình ảnh bộ đệm từ CLI, nó sẽ hoạt động. Khi chúng tôi xóa hình ảnh từ quản trị viên hoặc xóa hình ảnh được lưu thủ công vào thời điểm đó, nó sẽ không tạo lại hình ảnh bộ đệm khi tải trang vì vậy tôi cần chạy lại lệnh lặp đi lặp lại. Theo quan điểm của tôi, giải pháp tốt nhất là tạo bộ đệm hình ảnh khi tải trang.

Lưu lượng mặc định

Luồng Magento mặc định là bất cứ khi nào nó tải hình ảnh (phương tiện), nó sẽ luôn chuyển yêu cầu đến pub / get.php và kiểm tra xem hình ảnh có tồn tại hay không. Nếu nó không tồn tại, nó sẽ tạo ra một hình ảnh lưu trữ mới. Nếu nó tồn tại, nó sẽ trả lại con đường đó. Vì vậy, theo hình ảnh mặc định sẽ tạo ra khi tải trang.

Chúng ta có thể kiểm tra thông qua logic này trong các tệp bên dưới

pub/media/.htaccesscho máy chủ apache

RewriteRule .* ../get.php [L]
.............................
.............................

nginx.conf.samplecho máy chủ nginx

location /media/ {
    try_files $uri $uri/ /get.php$is_args$args;
    .......................................
    .......................................

Làm thế nào để kiểm tra logic này có hoạt động hay không?

Đặt echo "test";exit;vào đầu pub / get.php và tải bất kỳ URL phương tiện được lưu trong bộ nhớ cache nào, nó sẽ in thử. Nếu không, một cái gì đó sai trong cấu hình máy chủ của bạn.

Đối với tôi, bất cứ khi nào tôi xóa thư mục bộ đệm danh mục (rm -rf pub / media / catalog / sản phẩm / cache / *) sau đó khi chúng tôi tải trang, nó sẽ không tạo ra một hình ảnh được lưu trong bộ nhớ cache mới và nó không tìm thấy trang 404 và Ngoài ra, nó không bao giờ đạt được get.php . Sau đó tôi nhận thấy rằng nhiều thư mục có quyền không chính xác khác với 755 cho các thư mục và 644 cho các tệp. Sau khi tôi đặt quyền, nó hoạt động tốt.

Tôi hy vọng nó cho một số ý tưởng.


Bất kỳ trợ giúp magento.stackexchange.com/q/296715/57334 cảm ơn @Bilal Usean
zus
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.