在MVC 4中,我可以使用@ Styles.Render("〜/ Content/css")调用一组CSS文件定义BundleConfig文件,而不是直接调用CSS.
什么时候应该使用bundle而不是直接调用文件?当我们有各种CSS文件来简化代码时,我清楚地理解它.但是如果有一个CSS文件,我们应该使用一个包还是直接调用它?
我正在使用Visual Studio 2012和MVC 4,在我的_Layout.cshtml中,我有以下内容:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryui")
@Scripts.Render("~/bundles/jqgrid")
@RenderSection("head", required: false)
</head>
<body>
@RenderBody()
@RenderSection("scripts", required: false)
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
在BundleConfig.cs中我有
public class BundleConfig
{
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
"~/Scripts/jquery-ui-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/jqgrid").Include(
"~/Scripts/jquery.jqGrid.min.js"));
}
}
Run Code Online (Sandbox Code Playgroud)
我已经三重检查,我的脚本文件夹确实包含jquery.jqGrid.min.js,但它没有包括在内.
我的Html头看起来像:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<link href="/Viper/Content/css" rel="stylesheet"/>
<script src="/Viper/Scripts/jquery-1.8.1.js"></script>
<script src="/Viper/Scripts/jquery-ui-1.8.23.js"></script>
</head>
Run Code Online (Sandbox Code Playgroud)
任何想法为什么没有添加?
我正在尝试添加一个捆绑的文件夹,所以我不必手动将每个新的.less文件添加到通常的包中,但我不知道如何渲染它.
在BundleConfig中,
BundleTable.Bundles.Add(new DynamicFolderBundle("Content/autobundled", "*.less", new LessTransform(), new CssMinify()));
//.less sheets are at Content/autobundled/example.less
Run Code Online (Sandbox Code Playgroud)
在Razor页面中:
@Styles.Render("Content/autobundled")
Run Code Online (Sandbox Code Playgroud)
输出:
<link href="/Binky.Web/Content/autobundled" rel="stylesheet">
Run Code Online (Sandbox Code Playgroud)
但这并没有链接任何文件,只是链接到不可浏览的目录.我读过的文章没有说明在创建文件夹后如何使用文件夹包.
asp.net asp.net-mvc-4 bundling-and-minification asp.net-optimization
有没有办法从代码隐藏中读取System.Web.Optimization内容?我试着在dll周围戳,但我找不到一种方法来读取包内容(据我所知,它意味着通过处理程序来处理对bundle的调用.
我的意图是使用sass,由于转换(在缩小之上)会导致更重的处理,并将其生成为文件,然后将其提供给最终用户.通过使用WebRequest读取文件并保存响应,我找到了一个解决方案,但它只是觉得对我很讨厌.
.net c# asp.net asp.net-optimization system.web.optimization
我正在构建一个基于ASP.NET MVC 4的框架.我喜欢MVC4中的新捆绑功能,但我遇到了一个问题,我不确定新的捆绑功能是否能解决这个问题.
我的布局视图在之前的页面底部呈现它的脚本包</body>.
由于我的项目是一个框架,因此该视图不知道该页面所需的所有包.我的项目正在大量使用编辑器模板,可能需要包含一些javascript,但无法在编辑器模板中呈现它,因为:
所以,我想在编辑器模板中做的是这样的事情:
@Scripts.TriggerInclusion("~/path/to/bundle/that/this/editor/needs")
Run Code Online (Sandbox Code Playgroud)
这将导致bundle脚本标记仅向页面末尾呈现一次.
我可以把这个构建到我的项目的基础设施中,但是我希望这种事情已经得到了某种支持.谢谢!
我试图通过在我的应用程序中使用我的应用程序进行一些优化.BundlesCollectionASP.Net 4.0
我的样式包包含6个css文件.这些文件包含在母版页中.如果我从母版页中删除CSS文件,而是放下以下内容:
<%= Styles.Render("~/bundles/css/default") %>
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
The Controls collection cannot be modified because the control contains code
blocks (i.e. <% ... %>).
Run Code Online (Sandbox Code Playgroud) 两者之间有什么区别:
https://www.nuget.org/packages/Microsoft.AspNet.Web.Optimization/1.1.0
和
https://www.nuget.org/packages/Microsoft.AspNet.Web.Optimization.WebForms/1.0.30506
有人请解释,非常困惑。:(
撞!
asp.net optimization asp.net-4.5 bundling-and-minification asp.net-optimization
我有一个ASP.NET Web表单应用程序,使用Microsoft.AspNet.Web.Optimization包中的新Bundling和Minification功能在.NET 4.5上运行.
到目前为止,这是一个非常简单的设置,只需一个捆绑.
BundleConfig.cs
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/send").Include(
"~/scripts/GrowingInput.js",
"~/scripts/textboxlist/TextboxList.js",
"~/scripts/textboxlist/TextboxList.Livesearch.js",
"~/scripts/combobox/ui.combobox.js",
"~/scripts/jquery-ui-timepicker.js",
"~/scripts/msp.send.js"));
}
Run Code Online (Sandbox Code Playgroud)
Global.asax中
protected void Application_Start(object sender, EventArgs e)
{
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
Run Code Online (Sandbox Code Playgroud)
Send.aspx
<%: Scripts.Render("/bundles/send") %>
Run Code Online (Sandbox Code Playgroud)
这始终在Web浏览器中呈现为<script src="/bundles/send"></script>忽略在web.config中将debug设置为true还是false.
我已经尝试添加BundleTable.EnableOptimizations = false;到BundleConfig.cs以强制捆绑,但这没有任何区别.
希望得到以下工作,就像在MVC网站中一样(Microsoft文档似乎建议Web表单应该是相同的).
asp.net ×6
.net ×2
bundles ×2
c# ×2
asp.net-4.5 ×1
asp.net-mvc ×1
bundle ×1
html ×1
optimization ×1