7

ASP.Net Web サイトの JavaScript およびスタイルシート参照でキャッシュバスター変数を自動的に適用および/または更新するための適切な戦略は何ですか?

例: 変形

<script type="text/javascript" src="/js/myScript.js" />

<script type="text/javascript" src="/js/myScript.js?rev=12345" />

更新: 継続的インテグレーションは必要ありません。 私は継続的インテグレーション (具体的には Jenkins) を使用しているので、たとえば変数を更新する方法がビルド番号に基づいていれば素晴らしいと思います。

ソースコードで元の変数を手動で適用し、戦略を介してそれらを更新するだけで生活できますが、元の変数がまだ存在しない場合 (レガシーコードなど) に戦略が元の変数を適用できる場合、それは素晴らしい追加です。

頭の中で、すべての *.aspx および *.ascx ファイルをスキャンし、正規表現を使用して適切な参照を見つけて更新する Powershell スクリプトを使用することを想像できます。しかし、あなたは彼らが正規表現の使用について何を言っているのか知っています...そして、私には2つの問題があります:)

4

2 に答える 2

3

また、Cassette、RequestReduce、およびBundlerを調べることもできます。

カセット:すべてのJavaScript、CoffeeScript、CSS、LESS、Sass、およびHTMLテンプレートを自動的にソート、連結、最小化、キャッシュ、およびバージョン管理します。

RequestReduceは、ほとんど労力をかけずにWebサイトを高速化します(場合によってははるかに高速化します)。

  • 背景画像からスプライトを自動生成します
  • スプライトPNG形式と圧縮を最適化します
  • CSSとJavascriptを最小化します
  • キャッシュヘッダーとETagを最適化します
  • ClassicASPやPHPを含む任意のIISWebサイトで実行されます
  • 複数のWebサーバー間でコンテンツを同期できます
  • CDNでうまく機能します
  • コンパイルレス、SassおよびCoffeeスクリプト

Bundler: "Compile、Minify、Combine Less / Sass / Css / JS/CoffeeScriptファイル。MVCから簡単に使用できます"

于 2012-06-15T19:22:55.910 に答える
3

ASP.Netでバスター変数をキャッシュするための答えは、さまざまなCSS/JSミニファイライブラリの1つを使用することです。

サーバーへのデプロイごとにキャッシュバスター変数を更新する必要があると考えていましたが、ミニファイライブラリは個々のCSS/JSファイルの内容に基づいてハッシュタグを適用します。

.Net 3.5 Webサイトを開発しているので、選択肢が少し制限されていました。最終的にSquishIt(NuGetパッケージとして入手可能)を使用しましたが、統合はとても簡単でした。

<link href="/<my_css_path>/<css_file_1>.css" rel="stylesheet" type="text/css" />
<link href="/<my_css_path>/<css_file_2>.css" rel="stylesheet" type="text/css" />
<link href="/<my_css_path>/<css_file_3>.css" rel="stylesheet" type="text/css" />

なりました

<%= Bundle.Css()
    .Add("~/<my_css_path>")
    .Render("~/<my_css_path>/combined_#.css") %>

基本的にはそれだけです!javascriptと同様のアイデア。debug="true"ローカル開発およびステージング/本番環境用のweb.configにある限りdebug="false"、SquishItはCSS / JSをローカル開発用に分離および縮小せずに残し、他の環境用に結合、縮小、およびハッシュ(キャッシュバスティング用)します。

于 2012-05-10T00:27:27.980 に答える