2019年11月20日の回答:
コマンドによってイメージキャッシュを再生成することは、多くの製品を持っている一部のWebサイトでは多くの時間がかかるため、すべての実行可能なソリューションではありません。また、CLIからキャッシュイメージを生成する場合、それが機能するなどのいくつかの問題に直面しました。その時点で管理者から画像をフラッシュしたり、キャッシュされた画像を手動で削除すると、ページの読み込み時にキャッシュ画像が再度生成されないため、再生成コマンドを何度も実行する必要があります。私の観点では、最適なソリューションはページの読み込み時に画像キャッシュを生成することです。
デフォルトフロー
デフォルトのMagentoフローは、イメージ(メディア)を読み込むときは常に、pub / get.phpへのリクエストを常に通過し、イメージが存在するかどうかを確認します。存在しない場合は、新しいキャッシュイメージが生成されます。存在する場合、そのパスを返します。そのため、デフォルトでは、画像はページの読み込み時に生成されます。
以下のファイルでこのパススルーロジックを確認できます
pub/media/.htaccess
以下のためのApacheサーバ
RewriteRule .* ../get.php [L]
.............................
.............................
nginx.conf.sample
以下のためのnginxのサーバー
location /media/ {
try_files $uri $uri/ /get.php$is_args$args;
.......................................
.......................................
このロジックが機能しているかどうかを確認する方法は?
echo "test";exit;
pub / get.phpの先頭に入れて、キャッシュされたメディアURLをロードすると、テストを出力するはずです。それ以外の場合は、サーバー構成に問題があります。
私にとっては、カタログキャッシュディレクトリ(rm -rf pub / media / catalog / product / cache / *)を削除した後、ページを読み込むと新しいキャッシュイメージが生成されず、404ページが見つかりません。また、get.phpには到達しません。次に、フォルダーの多くが、フォルダーの755やファイルの644とは異なる不正なアクセス許可を持っていることに気付きました。適切な許可を設定すると、正常に機能します。
私はそれが何らかのアイデアを与えることを願っています。