css / jsファイルを自動的に結合するには何を使用すればよいですか?


14

私はjavascriptファイルを結合するためのスプロケットを知っていますが、試していません。他のオプションにはどのようなものがあり、どのように積み重ねられますか?


2
また、本当の答えではありませんが、リソースパッケージに興味があるかもしれません:limi.net/articles/resource-packages残念ながら、まだ誰も実装していないと思います。
luiscubal

回答:



2

私はすでに別の質問でこの問題に取り組んでいます

後から考えてみると、プログラマーサイトではなく、ウェブマスターに質問する必要がありました。

次の3つのオプションがあります。

  1. フレームワークに自動的に処理させます
  2. ウェブサーバーに自動的に処理させます
  3. 独自のオプションを使用して手動で実行する

オプション1(CakePHP拡張機能を使用):

AssetPackerをダウンロードして、サイトにインストールします(jsminとCSSTidyも必要です)。jsファイルを含む数行のソースを変更します。洗浄->すすぎ->繰り返し。出来上がり、残りは自動的に行われます。

他のフレームワークを使用している場合、可能性としては、これを実現するツールがあります。webdevの世界ではかなり一般的な要件です。

オプション2(Apache modを使用):

Apache用Google Pagespeed modをご覧ください。それはあなたが説明するすべてを実行します。

ただし、運用サーバーのリソースを監視してください。一部の人々は、これがサーバーの負荷をひどく増加させるという問題を見てきました。私は前向きではありませんが、効果的なオプションとして十分な静的コンテンツ戦略が必要な場合があります。

オプション3:

本当に必要な場合は、JSファイルサーバー側を連結し、すべてのリンクrelを1つに結合するPHPマジックを作成できます。

個人的には、このオプションには強くお勧めします。


私が知る限り、SprocketsはAssetPackerと同じようにJSファイルを連結し、Ruby Gemとして実装されています。しないのは、jsコードを縮小することです。そのため、使用する場合は、おそらくjsmin gemも取得することをお勧めします。CakePHPでSprockets + JSMinを使用する方法については、こちらをご覧ください

CakePHPに重点を置いていることは知っていますが、プラグインをCakePHPに適合させることができれば、それを別のフレームワークに適合させるのは簡単なはずだと思います。



1

それらを組み合わせてもよろしいですか?共通ライブラリを使用する場合、CDNを活用してjavascriptを配信できます。その後、ブラウザのキャッシュ(他のサイトが同じCDNを使用していると仮定)と分散配信を利用できます。 MicrosoftGoogleにはそれぞれ解決策があり(どちらも正直に使用していませんが、確かに始めます)、他にもあるかもしれません。


1

ASP.NETプロジェクトの場合、Karl Seguinの指示に基づいて、ビルドプロセスの一部にしました。

カールは彼のブログで最もよく説明していますが、短いバージョンはYUICompressorをラップするコンソールアプリをセットアップすることです。次に、ビルド後タスクを設定して、サイトのJSファイルの場所に対してそのコンソールアプリを呼び出すことができます。


1

WebアプリケーションがPHPにある場合、minifyの使用を検討する必要があります。

複数のCSSまたはJavascriptファイルを結合し、不要な空白とコメントを削除し、gzipエンコーディングと最適なクライアント側キャッシュヘッダーを提供します。


1

このためには、Pythonが実際に役立つことがあります。Pythonをすぐに習得できます。私は約2週間前に始めましたが、私の最初のアプリケーション(まだ終了していません)は、あなたが望むものとまったく同じことをします。DotLessコンパイラと同様に、ファイルまたはディレクトリを調べるウォッチ機能があり、それらが変更されると新しいファイルが生成されます。

Pythonは他のメンテナンスタスクにも最適であり、多くのシステム管理者がPythonを使用することを好みます。


私自身はPerlの男であり、おそらく何かを一緒にハックすることもできますが、既存のツールを使用することをお勧めします(おそらく、迅速で汚れた努力よりも優れたテストとより多くの機能を備えています)。
Cebjyre

恐ろしい自己宣伝ですが、@ Pickels、このプロジェクトの支援に興味がありますか?code.google.com/p/lesscss-python
Metalshark

0

私が作成したMinifpyのPythonを使ってJSとCSSファイルをマージし、縮小化するのpython3でwritedツール(Mac OSでは、WindowsとLinuxの互換性を):。

Minifpyは非常に簡単なJSON構成ファイルを使用して、どのファイルをマージ、縮小、または縮小する必要があるかを定義します。

{
    "js": {
        "minify_files": [
            {"from": "static/file.js", "to":"static/file.min.js"},
        ],
        "merge_files": [
            {"from" : ["static/file1.js", "static/file2.js"], "to":"static/public.js", "to_min": "static/public.min.js"}
        ]
    },
    "css" : {
        "minify_files": [
            {"from": "static/file.css", "to":"static/file.min.css"},
        ],
        "merge_files": [
            {"from" : ["static/file1.css", "static/file2.css"], "to":"static/public.css", "to_min": "static/public.min.css"}
        ]
    }
}

CLIでこのツールを使用することもできます。

MinifpyはJS / CSSファイルの変更を検出し、それらを自動的にマージ/縮小します(開発に役立ちます)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.