0

キャッシュを破壊する目的で css ファイルの URL に mtimes を自動的に挿入するには、どのコマンド ライン ツールを使用できますか?

/* before */
.example { background: url(example.jpg); }
/* after */
.example { background: url(example.jpg?1271298451); }

また、このツールで最新のmtime を css ファイルの mtime として吐き出してほしいです。(css ファイルがまだキャッシュされている場合、新しい URL はクライアントに届きません。)

Web を検索したところ、これを実行できるツールはほとんど見つかりませんでした。私は自分自身を展開することさえ考えていますが、アクティブに維持されている css パーサーの邪魔になるものはほとんど見つかりませんでした。候補者は次のとおりです。

  • 高速 (デプロイで 30 秒も待ちたくない)
  • コマンドラインからアクセス可能 (「cat foo.css bar.css | cssmtime > out.css」のようなもの)

これまでに見つけたもの

  • yui コンプレッサー- 最初は yui コンプレッサーを拡張してこれを行うと思っていましたが、パーサーではなく、正規表現の束として実装されていることがわかりました。
  • csstidy - 最後のリリースは 2007 年で、開発は中断されていますが、mtimes を挿入するオプションがあります (これも php で書かれており、私は経験がありません)。
  • cssutils - python sac の実装 - は積極的にメンテナンスされているようですが、私のニーズにはやり過ぎのようにも思えます。また、私が経験したpythonで書かれています
  • csspool - ruby​​ sac の実装 - ruby​​ はよくわからないけど学びたい
  • その他の sac 実装- いくつかの Java 実装と ac 実装がありますが、どちらもあまり知りません。

あなたの経験は何ですか?

これらのライブラリのいずれかを使用したことがありますか? その経験はポジティブなものでしたか?私の目的のために彼らと一緒に行くことをお勧めしますか?

4

1 に答える 1

1

自分でローリングすることがオプションである場合は、ここで複雑な解析を行う必要がなく、簡単な検索/置換を行うことができます。たとえば、クエリ文字列を自分で追加して再キャッシュが必要なファイルを指定した場合は、次のようにします。

.example { background: url(example.jpg?<MTIME>); }

次に、コードを見つけ<MTIME>て置き換える必要があります。再キャッシュが必要な画像と不要な画像を取得して制御できるのと同じくらいの速さです。

于 2010-04-28T22:23:50.700 に答える