389

プロジェクトでは.NET MVC4どのように機能し@Styles.Renderますか?

つまり、@Styles.Render("~/Content/css")どのファイルで呼び出しているのですか?

フォルダ内に「css」というファイルやフォルダがありませんContent

4

8 に答える 8

458

これは、フォルダー内のBundleConfigクラス内で宣言されている特定のバンドルに含まれているファイルを呼び出しています。App_Start

その特定のケースでは、への呼び出し @Styles.Render("~/Content/css")は「〜/ Content/site.css」を呼び出しています。

bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));
于 2012-08-19T17:27:39.460 に答える
34

大文字と小文字の区別に注意してください。ファイルがある場合

/Content/bootstrap.css

Bundle.configでリダイレクトします

.Include( "〜/ Content / Bootstrap.css")

cssはロードされません。

于 2013-04-30T13:28:39.150 に答える
14

パーティーに少し遅れました。しかし、誰もその
バンドルミニファイについて言及していないStyleBundleようです。

@Styles.Render("~/Content/css") 

呼び出しApplication_Start()

BundleConfig.RegisterBundles(BundleTable.Bundles);            

順番に呼び出します

public static void RegisterBundles(BundleCollection bundles)
{
    bundles.Add(new StyleBundle("~/Content/css").Include(
              "~/Content/bootstrap.css",
              "~/Content/Site.css"));
}

RegisterBundles()効果的に結合&縮小 bootstrap.cssSite.css
単一のファイルに、

<link href="/Content/css?v=omEnf6XKhDfHpwdllcEwzSIFQajQQLOQweh_aX9VVWY1" rel="stylesheet">

しかし..

<system.web>
  <compilation debug="false" targetFramework="4.6.1" />
</system.web>

debugでに設定されてfalseいる場合のみWeb.config
それ以外の場合は、個別に提供されますbootstrap.css。 バンドルも縮小もされていません:Site.css

<link href="/Content/bootstrap.css" rel="stylesheet">
<link href="/Content/Site.css" rel="stylesheet">
于 2017-12-17T18:32:16.843 に答える
0

src="@url.content("~/Folderpath/*.css")"スタイルをレンダリングする必要があります

于 2013-09-18T19:49:55.260 に答える
0

App_start.BundleConfigで定義されているように、それは単に呼び出しています

bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));

そのセクションを削除しても何も起こりません。

于 2014-09-15T12:42:57.377 に答える
0

ポロ私は複数の理由でMVCでバンドルを使用しませんでした。Apps_StartフォルダーにカスタムBundleConfigクラスを設定する必要があるため、この場合は機能しません。次のようにHTMLの先頭にスタイルを簡単に追加できる場合、これは意味がありません。

<link rel="stylesheet" href="~/Content/bootstrap.css" />
<link rel="stylesheet" href="~/Content/bootstrap.theme.css" />

これらを、すべてのビューから呼び出されて各ページにドロップされるLayout.cshtmlまたは部分クラスに追加することもできます。スタイルが変更された場合、再コンパイルせずに名前とパスを簡単に変更できます。

クラスにハードコードされたリンクをCSSに追加すると、UIとデザインをアプリケーションモデルから分離するという目的全体が壊れます。また、ハードコードされたスタイルシートパスをc#で管理する必要はありません。これは、次のように、さまざまなデバイスやテーマなどの「スキン」や個別のスタイルモデルを構築できなくなったためです。

<link rel="stylesheet" href="~/UI/Skins/skin1/base.css" />
<link rel="stylesheet" href="~/UI/Skins/skin2/base.css" />

このシステムとRazorを使用すると、データベースまたはユーザー設定からスキンパスを切り替えて、パスを動的に変更するだけでWebサイトのデザイン全体を変更できるようになりました。

15年前のCSSの全体的な目的は、ユーザー制御とアプリケーション制御の両方のスタイルシート「スキン」をサイト用に開発することでした。これにより、UIのルックアンドフィールをアプリケーションとは別に切り替えて、データ構造に関係なくコンテンツを再利用できます。 ....たとえば、印刷可能なバージョン、モバイル、オーディオバージョン、生のxmlなど。

ここで、C#クラス、Bootstrapなどの厳密なスタイルを使用し、サイトのテーマをアプリケーションコードとマージする、この「昔ながらの」ハードコードされたパスシステムに戻ることで、1998年にWebサイトが構築された方法に戻りました。

于 2017-06-30T20:10:52.333 に答える
0

MVC 3 Webにバンドルを追加するために必要なすべてのことを行いました(既存のソリューションは初めてです)。 Styles.Render私のために働いていませんでした。私はついに私が単にコロンを失っていることを発見しました。マスターページの場合:(同じページで)コロンなしで機能<%: Styles.Render("~/Content/Css") %> する理由については、まだ混乱しています。<% Html.RenderPartial("LogOnUserControl"); %>

于 2018-08-31T15:46:58.823 に答える
0

web.configでこれをFalseに設定します

<compilation debug="false" targetFramework="4.6.1" />
于 2020-11-04T18:04:17.120 に答える