5

私は MVC でバンドルを使用して、すべてのスクリプトと CSS を一緒にパックしていますが、これは素晴らしいことですが....共有プロジェクト ライブラリのリソースからスクリプトまたは CSS をバンドルに含める方法はありますか、または誰かが似たようなものを知っていますか?これを行うことができるバンドル?

4

1 に答える 1

1

必要なリソースを読み取り、それらのコンテンツとコンテンツ タイプを返すカスタム バンドル変換クラスを作成することから始めることになるでしょう。

public class ResourceTransform : IBundleTransform
{
    public void Process(BundleContext context, BundleResponse response)
    {
        string result;

        using (Stream stream = Assembly.GetExecutingAssembly()
            .GetManifestResourceStream("YourAssemblyNamespace.YourResourceFolder.YourFile.css"))
        {
            using (StreamReader reader = new StreamReader(stream))
            {
                result = reader.ReadToEnd();
            }
        }

        response.ContentType = "text/css";
        response.Content = result;
    }
}

本番環境で使用する場合は、ResourceTransformクラスのハードコーディングを少し減らして、必要なリソースをパラメーターまたはプロパティとして送信することをお勧めしますが、アイデアは得られます。

そうすれば、このバンドルをコレクションに追加できます。

Bundle resources = new Bundle("~/css/resources");
    resources.Transforms.Add(new ResourceTransform());
    resources.Transforms.Add(new CssMinify());

bundles.Add(resources);
于 2013-01-28T22:21:32.333 に答える