2011-08-05 12 views
1

私たちが開発しているWebサイトは、初めて商品を読み込むのにかなりの時間がかかります。私はこの時点でMagentoがユーザーに提示されているすべての画像をキャッシングしていると仮定しています(合計で6、かなり大きい解像度の2400 x 1200から始まります)。Magentoの画像をキャッシュする

私の前提は、次にローカルキャッシュをクリアした後に製品をロードするときに、製品とイメージの読み込みがはるかに高速であることに基づいています。

私にとって単純な解決策は、それぞれの製品を一度訪れることです。これは、理由や理由によってイメージキャッシュをフラッシュする必要がある場合には理想的ではありません。

私は各画像をプリキャッシュするスクリプトを書くことができますが、このような仕組みが組み込まれているかどうかは不思議ですね。

+1

ロード時間に影響を与えるのは画像だけですか? .htaccessはCSS/jsを圧縮するのに最適な設定と一緒に正しく設定されていますか?また、2400 x 1200の画像が必要な場合は、負荷を分散するのに役立つ素敵なCDNをチェックしてください。サムネイルが実際にクリックされた後にalt画像をロードすることもできます。 –

+0

.htaccessが正しく設定されているため、JS/CSSを圧縮しています。 CDNを使用しており、サムネイルをクリックした後に要求される画像ではなく、サムネイルのみを読み込んでいます。 – Anthony

答えて

1

ローカルキャッシュをクリアした後もページが高速なので、サーバーキャッシュについて心配する必要があります。答えは、var/cache/ではなく、media/catalog/product/cacheの通常のキャッシュに別々に保存されています。 システム>キャッシュ管理を見ると、本当に必要な場合を除き、そのボタンをクリックすることを避けるために、それらの画像を消去するための別のボタンがあることがわかります。

+0

修正します。これはサーバーキャッシュに関する質問です。私はあなたが管理ダッシュボードを介してキャッシュをクリアできることを知っていますが、私は自動的にすべての画像をキャッシュしようとしています - これはresizeメソッド($ this-> helper( 'catalog/image') - > init ($ _product、 'small_image') - > resize(500、500);)をサイト全体で必要とされるサイズごとに指定します。 magentoにはこれらのサイズ変更呼び出しをすべて解析する機能があり、自動的にこれを行うことができます。 – Anthony

+1

イメージを_pre-cache_したいです。今、私は分かる。 – clockworkgeek

+0

プリキャッシュははるかに明確な言語です。ありがとうございました。 – Anthony

1

私は、プリキャッシング、または少なくともパージ後のキャッシュの再構築に関して同様の必要性を持っていました。これを行うためのものは何も組み込まれていないので、サイトマップxmlファイルを解析してコマンドラインからサイトをクロールするためのすばやく汚れたスクリプトを作成し、すべてのページのイメージキャッシュをmagentoに生成させました。

このスクリプトでは、同じディレクトリにsitemap.xmlがあることを前提としています。これは、Webルートの外部のコマンドラインから実行されることを意図しています。

<?php 

ini_set("memory_limit","500M"); 
ini_set('max_execution_time', 600); 

$d = file_get_contents('sitemap.xml'); 

$data = @new SimpleXMLElement($d); 

$cnt = count($data); 

$i = 1; 
foreach ($data as $row) { 
    $url = $row->loc; 
    echo "$i of $cnt : $url \n"; 
    $buffer = file_get_contents($url); 
    $buffer = ''; 
    flush(); 
    $i++; 
} 
関連する問題