2019 년 11 월 20 일 답변 :
많은 제품이있는 일부 웹 사이트에는 시간이 오래 걸리기 때문에 명령으로 이미지 캐시를 재생 하는 것은 실현 가능한 솔루션이 아닙니다. 또한 CLI에서 캐시 이미지를 생성하면 작동합니다. 우리가 관리자에서 이미지를 플러시하거나 캐시 된 이미지를 수동으로 삭제하면 페이지로드시 다시 캐시 이미지가 생성되지 않으므로 다시 생성 명령을 반복해서 실행해야합니다. 내 관점에 따르면 가장 좋은 해결책은 페이지로드시 이미지 캐시를 생성하는 것입니다.
기본 흐름
기본 Magento 흐름은 이미지 (미디어)를로드 할 때마다 항상 pub / get.php에 대한 요청을 통과하고 이미지가 존재하는지 여부를 확인합니다. 존재하지 않으면 새로운 캐시 된 이미지를 생성합니다. 존재하는 경우 해당 경로를 반환합니다. 따라서 기본적으로 이미지는 페이지로드시 생성되어야합니다.
아래 파일에서이 통과 논리를 확인할 수 있습니다
pub/media/.htaccess
대한 아파치 서버
RewriteRule .* ../get.php [L]
.............................
.............................
nginx.conf.sample
대한 의 nginx 서버
location /media/ {
try_files $uri $uri/ /get.php$is_args$args;
.......................................
.......................................
이 논리가 작동하는지 확인하는 방법은 무엇입니까?
넣어 echo "test";exit;
술집 / get.php의 시작과 캐쉬 미디어 URL을로드, 그것은 테스트를 인쇄해야합니다. 그렇지 않으면 서버 구성에 문제가 있습니다.
나를 위해, 페이지를로드 할 때 카탈로그 캐시 디렉토리 (rm -rf pub / media / catalog / product / cache / *)를 삭제할 때마다 새로운 캐시 된 이미지가 생성되지 않고 404 페이지를 찾을 수 없습니다. 또한 get.php에 도달하지 않습니다 . 그런 다음 많은 폴더가 폴더의 경우 755와 파일의 경우 644와 다른 잘못된 권한을 가지고 있음을 알았습니다. 올바른 권한을 설정하면 정상적으로 작동합니다.
나는 그것이 약간의 아이디어를 제공하기를 바랍니다.