CSSまたはJSをマージすると、ページタイプごとに新しいファイルが生成されます


15

たくさんの小さなCSSファイルとJSファイルがあり、マージを有効にすることは良い選択のようです。

CSSおよびJSファイルの多くは、すべてのページ(ホームページ、カテゴリページ、製品詳細ページ)で使用されます。

別のマージされたファイルが各ページに再度ロードされるのを見るたびに、含まれるCSSでさえ重複している必要があります。

どうすればこれを回避し、より多くのデータを再利用できますか?


Alex別のページに別のcssファイルとjsファイルを含めていますか?この追加のコンパイル/マージが行われていることを確認するリンクまたは情報がありますか?私は先日それについて何かを見て、もっと知りたいです。最近、JSをコンパイル/マージする際に問題が発生しました。
マークウェストン

公開リンクはありません。しかし、たとえば製品ページには、追加のファイル.css.jsファイルがあります。Magentoのデフォルトのインストールでは、実際には.cssファイルはほぼグローバルに同じであるため、マージされたファイルは同じハッシュを持ちます。しかし、.jsこれにはかなりの違いがあります-製品ページやカテゴリページなどに新しく結合されたファイルがあります-常に完全なプロトタイプライブラリが含まれています。
アレックス

キャッシュの無効化に役立つ「Javascriptファイルのマージ」機能を探していました。このコメントが検索エンジンを更新し、重複を防ぐことを願っています。
レイ・フォス

回答:


14

簡単な答え: MagentoのJS / CSSマージ機能を有効にしないでください。全体的に、各アセットを個別に送信するよりも、一般的なチェックアウトのライフサイクル全体のパフォーマンスが低下します。

長い答え:ユーザーに提供するCSSファイルは1つだけにしてください。複数のファイルは、すべてのCSSがダウンロードされるまでレンダリングをブロックします。大量のCSSを提供していない限り、一度にすべてを送信する方が有利です。その後、ブラウザにキャッシュされます。SassやLESSなどのプリプロセッサを使用すると、Magentoに非効率的に実行させる代わりに、このステップをビルドプロセスに組み込むことができます。

JSの場合、理想的には、これらのサーバー側を結合しないでください。AMD / RequireJSのようなクライアント側のスクリプトローダーはより適切な選択肢であり、MagentoのレイアウトXMLにはない依存関係の管理に役立ちます。実際の世界では、Magentoはチェックアウトフローのいくつかのポイントでスクリプトを削除します。複数のリクエストの最初のページロードヒットを取得し、後で個別のキャッシュされたアセットを使用する方が良いでしょう。

Fooman Speedster Advanced拡張機能は、(今日)重複することなく資産をインテリジェントに結合するための最善の方法です。

Magento 1.xアーキテクチャでは、フロントエンドのパフォーマンスに関する貧弱なプラクティスが山積みになっているため、多少の制限があります。その船の進路を変えることは現実的ではありません。Magento 2に貢献してください。


1
「Magento 2に貢献してください。」
ベンマーク

6

Fooman Speedster Magento Extensionを使用しています。CSSとJSファイルのマージを処理してページのパフォーマンスを向上させるすばらしい拡張機能です。

ページから:

JavascriptファイルとCSSファイルを組み合わせ、圧縮、キャッシュすることにより、ストアを高速化します。Fooman Speedsterは、複数のJavascriptとCSSファイルを単一のJavascriptファイルと単一のCSSファイルに結合して、ページの読み込み時間を短縮します。


4
言及してくれてありがとう。結合されたJavascriptファイルの重複を減らすためのテーマ最適化機能が付属する、他の無料のSpeedster拡張機能(Speedster Advanced)をご紹介します。 / wp-content / uploads /…詳細については。
フリストンのクリストフ

私は多くのテストを行いました。すべての冗長性を取り除くわけではありませんが、いくつかの冗長性を取り除きます。そして、それは最高のミニファイヤではありませんが、冗長性の除去は、シェルスクリプトを使用して自分でできることを補います。@KristofatFoomanシステムを使用できたらuglifyjs --compressをしてコメントをうまく処理、コードで約4%の追加の改善が得られます。ノードからuglifyjs v3を使用しています。
レイ・フォス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.