プロジェクトでは.NET MVC4
どのように機能し@Styles.Render
ますか?
つまり、@Styles.Render("~/Content/css")
どのファイルで呼び出しているのですか?
フォルダ内に「css」というファイルやフォルダがありませんContent
。
プロジェクトでは.NET MVC4
どのように機能し@Styles.Render
ますか?
つまり、@Styles.Render("~/Content/css")
どのファイルで呼び出しているのですか?
フォルダ内に「css」というファイルやフォルダがありませんContent
。
これは、フォルダー内のBundleConfig
クラス内で宣言されている特定のバンドルに含まれているファイルを呼び出しています。App_Start
その特定のケースでは、への呼び出し @Styles.Render("~/Content/css")
は「〜/ Content/site.css」を呼び出しています。
bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));
大文字と小文字の区別に注意してください。ファイルがある場合
/Content/bootstrap.css
Bundle.configでリダイレクトします
.Include( "〜/ Content / Bootstrap.css")
cssはロードされません。
パーティーに少し遅れました。しかし、誰もその
バンドルとミニファイについて言及していない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.css
& Site.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">
src="@url.content("~/Folderpath/*.css")"
スタイルをレンダリングする必要があります
App_start.BundleConfigで定義されているように、それは単に呼び出しています
bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));
そのセクションを削除しても何も起こりません。
ポロ私は複数の理由で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サイトが構築された方法に戻りました。
MVC 3 Webにバンドルを追加するために必要なすべてのことを行いました(既存のソリューションは初めてです)。 Styles.Render
私のために働いていませんでした。私はついに私が単にコロンを失っていることを発見しました。マスターページの場合:(同じページで)コロンなしで機能<%: Styles.Render("~/Content/Css") %>
する理由については、まだ混乱しています。<% Html.RenderPartial("LogOnUserControl"); %>
web.configでこれをFalseに設定します
<compilation debug="false" targetFramework="4.6.1" />