VS2008/Framework 3.5 で Asp.Net MVC 1.0 プロジェクトの最終段階に入り、パフォーマンスの最適化を試みています。私のプロジェクトでは、ログインしたユーザーの役割に応じて、いくつかの異なる「テーマ」が使用されています。私のテーマのフォルダ構造はそうです...
\Themes
\Theme1
\Css
\Folder1
\CssFile1.css
\CssFile2.css
\Folder2
\CssFile1.css
\CssFile2.css
\Images
<Images go here>
\Theme2
\Css
\Folder1
\CssFile1.css
\CssFile2.css
\Folder2
\CssFile1.css
\CssFile2.css
\Images
<Images go here>
新しい顧客が参加すると、新しいテーマがこのフォルダー構造に追加されます。
Yahoo!を利用しています。UI ライブラリ: css (および js) ファイルを縮小およびマージするための .Net 用の YUI Compressor (これは非常に優れています)。
http://yuicompressor.codeplex.com/wikipage?title=Sample%20MSBuild.xml%20File&ProjectName=yuicompressorの例に従って、ビルド後のイベントを介して MSBuild スクリプトを実行し、縮小/マージ タスクを実行しました。
ItemGroup のようなものを使用<CssFiles Include="..\Themes\**\*.css" />して css ファイルを取得する場所を指定すると、すべてのテーマのすべての css ファイルが次のように 1 つのファイルにマージされることを除いて、すべてがうまく機能します...
\Themes
\SylesSheetFinal.css
代わりに、テーマの下の css のみをマージし、それぞれに 1 つの css ファイルを作成することです...
\Themes
\Theme1
\StyleSheetFinal1.css
\Theme2
\StyleSheetFinal2.css
私はMSBuildに本当に慣れていません。サンプルを変更して各テーマ フォルダーを自動的に移動し、それぞれに縮小/マージされたスタイルシートを作成する方法を知っている人はいますか? テーマは頻繁に追加または削除できるため、ItemGroup に各テーマ パスを手動で含める必要はありません。代わりに、フォルダーの数に関係なく、MSBuild スクリプトが Themes ルートの下のサブフォルダーを自動的に移動するようにします。
ありがとう!