1

私はこれを持っています:

bundles.Add(new StyleBundle("~/Content/Styles/Default").Include("~/Content/Styles/Default/Site.css"));

私のサイトにはこれがあります:

@section Styles
{
    @Styles.Render("~/Content/Styles/Default"))
}

私の _Layout.cshtml は次のようになります。

@RenderSection("Styles", true)

すべてが良さそうですよね?まあ、そうではありません。アプリケーションをリリースモードでコンパイルし、公開することにしたとき、これがレンダリングされます:

<link href="/Content/Styles/Default?v=78dkNySP_xsiuzsgxCx_GGnnHzYS-B8nNdnXqcl47XI1" rel="stylesheet">

ファイルに href を生成する代わりに、何らかの ID を生成しますか? ガイド?なんで?うーん

4

1 に答える 1

3

これがバンドルの仕組みです。その主な目的は、複数の CSS (および JS ファイル) ファイルを 1 つのパッケージに結合することです。たとえば、すべての css (および js) を 1 つの巨大なファイルに入れる必要がなくなりました。セクションに分割してバンドルに追加するだけで、1 つのアイテムにパッケージ化されます。Web リクエストが少ないほど、ページの読み込み時間が速くなります。

たとえば、2 つの css ファイルがあるとします。1 つがメインですが、メニュー システム用に 1 つありました。

bundles.Add(new StyleBundle("~/Content/Styles/Default").Include(
        "~/Content/Styles/Default/Site.css",
        "~/Content/Styles/Default/Menu.css"));

これは、URL に GUID タイプ コード (ファイル変更のキャッシュを防止するため) を持つ単一の呼び出しとして表示されます。この URL は、縮小されてバンドルされた CSS にリンクします。

しかし、私のブラウザはそれを読むことができません! ファイルへの物理パスはありません。

これは一種の仮想ファイルです。MVC のバンドルは、ルーティング エンジンを使用して、結合され縮小されたバージョンのパーティクル バンドルをポイントします。

于 2013-02-18T00:53:56.420 に答える