管理画面やフロントエンドに表示されないマジェントの画像

電子商取引のサイトにMagentoプラットフォームを使用している場合、遅かれ早かれ、画像が表示されないという問題に遭遇することがあります。

しかし、心配はいりません。理由を知っていれば、この問題を簡単に処理することができます。

1. 画像はMagentoの管理画面では表示されているが、顧客画面では表示されていない

原因1:/media/フォルダのパーミッションが間違っています。

解決方法: このフォルダに書き込み可能なパーミッションがあることを確認してください。再帰的にパーミッションを777に変更します。このコマンドはSSHを使って行うことができます(Magentoのディレクトリで実行してください)。

> chmod -R 777 media/

原因2:Mediaフォルダが別のユーザーに所有されています。
これは、Magentoストアをあるサーバーから別のサーバーに移した場合に起こります。

解決方法:media/フォルダの所有権を変更します。

> chown -R {username}:{username} media/

重要:フォルダの所有者が、Webサーバーのユーザーと同じであることを確認してください。わからない場合は、サーバーのサポート管理者にお問い合わせください。

原因3:「/media/」フォルダ内の「.htaccess」ファイルに問題があります。

解決方法: 「media」フォルダに移動して、元の「.htaccess」ファイルをリネームするか、Linuxで以下のコマンドを実行してください。

cd /media/
mv .htaccess .htaccess1

原因4:PHPのメモリ上限が低いため、Magentoが画像をリサイズできません。

Magento は GD ライブラリを使用して画像のリサイズを行いますが、そのための十分なメモリがない場合、Magento はプレースホルダー画像を返します。

解決方法 :メモリの上限を増やしてください。「.htaccess」ファイルを開いて、この文字列を見つけてください。

php_value memory_limit 256M

この値が最低でも256Mかより良いのは512Mであることを確認してください。

原因5:GDライブラリがインストールされていない/設定されていません。

解決方法: GDライブラリがインストールされているかどうか、php infoで確認してください。

原因6small_imagethumbnail、base_imageの属性スコープが間違っています。
スコープがストアビューになっていると、Magentoの画像処理がおかしくなることがあります(特にマルチストアの場合)。

解決方法 :Magento のバックエンドを開いて、カタログ、属性、属性の管理の順に選択します。すると、「image、small_image、thumbnail」の各属性が見つかるはずです。これらのアトリビュートのスコープがすべてグローバルであることを確認してください。

原因7image、small_image、thumbnail、swatchno_selection
商品編集の画像ロールにもかかわらず商品画像が表示されないのは、特定のストアとグローバルストアの設定の間で不適切な同期が行われていることが原因の公式バグです。

解決方法:no_selection値を持つ属性を、このSQLスクリプトを使って削除します。

DELETE `cpev_s`.* FROM `catalog_product_entity_varchar` `cpev_s` JOIN `eav_attribute` `ea` ON `cpev_s`.`attribute_id` = `ea`.`attribute_id` LEFT JOIN `catalog_product_entity_varchar` `cpev_0` ON `cpev_0`.`row_id` = `cpev_s`.`row_id` AND `cpev_0`.`attribute_id` = `cpev_s`.`attribute_id` AND `cpev_0`.`store_id` = 0 WHERE `cpev_s`.`value` = 'no_selection' AND `ea`.`attribute_code` IN ('image', 'small_image', 'thumbnail') AND `cpev_s`.`store_id` > 0 AND `cpev_s`.`value` != `cpev_0`.`value` AND `cpev_s`.`value` = 'no_selection';

原因8:セーフモードでの問題

解決方法: セーフモードを無効にすることは推奨されていませんが、他の解決策をすべて試した場合は、サーバーのセーフモードを無効にしてみてください。

原因9:静的コンテンツが古くなっています。
解決方法: 以下のコマンドを実行して、静的コンテンツを再生成してください。

php bin/magento setup:static-content:deploy -f <locale>

コードを見つけるには、php bin/magento info:language:listを実行し、リストからストアのロケールコードを選択してください。

例えば、ここではEnglish – United Stateロケールを指定しています。

php bin/magento setup:static-content:deploy -f en_US

関連トピック:Magento 2で複数のストアとドメインを設定する方法

2.画像がMagentoのバックエンドに表示されないこと

これは、アップロードされたファイルに間違ったパーミッションが設定されていることが原因です。lib/Varien/File/Uploader.phpを開き、以下のパーミッションが設定されていることを確認してください。

219行目周り

chmod($destinationFile, 0666);

541行目周り

if (!(@is_dir($destinationFolder) || @mkdir($destinationFolder, 0777, true))) {

注意:この問題は、パッチSUPEE-7405 v1.1を適用することでも解決できます。

デモを申し込む

弊社の専門家は最適なソリューションをサポートさせて頂きます。

►►►サービスについて