MVC4中的Styles.Render

Ric*_*olo 377 c# asp.net-mvc razor asp.net-mvc-4

在一个.NET MVC4项目中如何@Styles.Render运作?

我的意思是,它在@Styles.Render("~/Content/css")哪个文件中调用?

我的文件夹中没有文件或名为"css"的Content文件夹.

小智 451

它调用包含在该特定包BundleConfig中的App_Start文件,该文件在文件夹的类中声明.

在那种特殊情况下,调用 @Styles.Render("~/Content/css")是调用"〜/ Content/site.css".

bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));
Run Code Online (Sandbox Code Playgroud)

  • 有一点需要知道,它不会添加已经最小化到捆绑包的.css文件.示例:它不能与bootstrap.min.js一起使用,只能使用bootstrap.js.我希望这可以帮助别人. (22认同)
  • 这是谈论风格,而不是脚本.如果你想使用bootstrap.min.js,只需创建一个这样的包:bundles.Add(new ScriptBundle("〜/ bundles/bootstrap").Include("〜/ Scripts/bootstrap.min.js")); (4认同)

lin*_*emi 34

注意区分大小写.如果你有一个文件

/Content/bootstrap.css

然后在Bundle.config中重定向到

.INCLUDE( "〜/内容/ Bootstrap.css")

它不会加载CSS.


SAm*_*SAm 11

派对有点晚了.但似乎没有人提到
的捆绑微小StyleBundle,所以..

@Styles.Render("~/Content/css") 
Run Code Online (Sandbox Code Playgroud)

打电话Application_Start():

BundleConfig.RegisterBundles(BundleTable.Bundles);            
Run Code Online (Sandbox Code Playgroud)

反过来打电话

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

RegisterBundles()有效地结合与minifies bootstrap.cssSite.css
成一个单一的文件,

<link href="/Content/css?v=omEnf6XKhDfHpwdllcEwzSIFQajQQLOQweh_aX9VVWY1" rel="stylesheet">
Run Code Online (Sandbox Code Playgroud)

..

<system.web>
  <compilation debug="false" targetFramework="4.6.1" />
</system.web>
Run Code Online (Sandbox Code Playgroud)

仅当 debug设置为falsein时Web.config.
否则,bootstrap.cssSite.css将单独提供.
没有捆绑,也没有缩小:

<link href="/Content/bootstrap.css" rel="stylesheet">
<link href="/Content/Site.css" rel="stylesheet">
Run Code Online (Sandbox Code Playgroud)