添加了捆绑和缩小...当我查看源代码时,它看起来仍然不是捆绑和缩小
Added Bundling and Minification... When I look at the source, it still looks like it's not bundlnig and minifying
我将捆绑添加到我的 MVC 3 应用程序。
我为 Microsoft.Web.Optiminization.1.1.3 下载了 nugetpackage
我将此添加到我的 Globals.asax
public static void RegisterBundles(BundleCollection bundles)
{
BundleTable.EnableOptimizations = true;
//CSS
var styles = new StyleBundle("~/Bundling/bundledcss").Include(
"~/Content/site.css",
"~/Content/ASPNetSpellInclude/themes/bright/*.css",
"~/Content/ASPNetSpellInclude/themes/buttons/*.css",
"~/Content/ASPNetSpellInclude/themes/classic/*.css",
"~/Assets/CSS/*.css",
"~/Assets/CSS/blue/*.css",
"~/Assets/CSS/cupertino/*.css",
"~/Assets/JQGrid/css/cupertino/*.css"
);
INetLog log = ObjectFactory.GetInstance<INetLog>();
log.Debug("done mini and budle css");
//JS
var js = new ScriptBundle("~/Bundling/bundledjs").Include(
"~/Scripts/*.js",
"~/Content/*.js",
"~/Content/ASPNetSpellInclude/*.js",
"~/Content/ASPNetSpellInclude/core/*.js",
"~/Content/ASPNetSpellInclude/debugging-test-scripts/*.js",
"~/Content/ASPNetSpellInclude/translations/*.js",
"~/Content/ASPNetSpellInclude/*.js",
"~/Assets/JavaScript/*.js",
"~/Assets/JavaScript/i18n/*.js",
"~/Assets/JQGrid/js/*.js",
"~/Assets/JQGrid/js/i18n/*.js"
);
log.Debug("done minify and bundle script");
bundles.Add(styles);
bundles.Add(js);
BundleTable.EnableOptimizations = true;
log.Debug("done generating bundles");
}
这是从 Application_Start
调用的
protected void Application_Start
{
<snip>
RegisterBundles(BundleTable.Bundles);
}
在我的根布局页面上有这些
<link rel="stylesheet" type="text/css" href="@Styles.Url("~/Assets/CSS/Jcdc.css")" />
<script type="text/javascript" src="@Scripts.Url( "~/Assets/JavaScript/jquery-1.4.2.min.js")"></script>
我的 web.config 有 debug = false
<compilation debug="false" targetFramework="4.0">
但是当我 运行 并在页面上查看源代码时...我仍然看到这个。
<link rel="stylesheet" type="text/css" href="/CIS3G/Assets/CSS/Jcdc.css" />
...
<script type="text/javascript" src="/CIS3G/Assets/JavaScript/jquery-1.4.2.min.js"></script>
这意味着缩小和捆绑不起作用,对吗?
本文
表明我应该期待
所以它显然不起作用...
有人看到我遗漏了什么,我读过的所有内容都告诉我它应该有效吗?
是否启用优化,参考:https://msdn.microsoft.com/en-us/library/system.web.optimization.scripts.render(v=vs.110).aspx
要启用捆绑和缩小,请将调试值设置为 "false"。您可以使用 BundleTable class 上的 EnableOptimizations 属性 覆盖 Web.config 设置。以下代码启用捆绑和缩小并覆盖 Web.config 文件中的任何设置。
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
// Code removed for clarity.
BundleTable.EnableOptimizations = true;
}
注意:除非EnableOptimizations
为true或者Web.config文件中compilation Element中的debug属性设置为false,否则文件不会被捆绑或缩小。此外,将不使用文件的 .min 版本,将选择完整的调试版本。 EnableOptimizations
覆盖 Web.config 文件中编译元素中的调试属性。
您的根布局中的代码似乎有误。您仍然直接添加对您的 js 和 css 的引用。
您需要在根布局文件的 head 标签中添加这两行。
<head>
@Scripts.Render("~/Bundling/bundledjs")
@Styles.Render("~/Bundling/bundledcss")
</head>
我将捆绑添加到我的 MVC 3 应用程序。 我为 Microsoft.Web.Optiminization.1.1.3 下载了 nugetpackage 我将此添加到我的 Globals.asax
public static void RegisterBundles(BundleCollection bundles)
{
BundleTable.EnableOptimizations = true;
//CSS
var styles = new StyleBundle("~/Bundling/bundledcss").Include(
"~/Content/site.css",
"~/Content/ASPNetSpellInclude/themes/bright/*.css",
"~/Content/ASPNetSpellInclude/themes/buttons/*.css",
"~/Content/ASPNetSpellInclude/themes/classic/*.css",
"~/Assets/CSS/*.css",
"~/Assets/CSS/blue/*.css",
"~/Assets/CSS/cupertino/*.css",
"~/Assets/JQGrid/css/cupertino/*.css"
);
INetLog log = ObjectFactory.GetInstance<INetLog>();
log.Debug("done mini and budle css");
//JS
var js = new ScriptBundle("~/Bundling/bundledjs").Include(
"~/Scripts/*.js",
"~/Content/*.js",
"~/Content/ASPNetSpellInclude/*.js",
"~/Content/ASPNetSpellInclude/core/*.js",
"~/Content/ASPNetSpellInclude/debugging-test-scripts/*.js",
"~/Content/ASPNetSpellInclude/translations/*.js",
"~/Content/ASPNetSpellInclude/*.js",
"~/Assets/JavaScript/*.js",
"~/Assets/JavaScript/i18n/*.js",
"~/Assets/JQGrid/js/*.js",
"~/Assets/JQGrid/js/i18n/*.js"
);
log.Debug("done minify and bundle script");
bundles.Add(styles);
bundles.Add(js);
BundleTable.EnableOptimizations = true;
log.Debug("done generating bundles");
}
这是从 Application_Start
调用的protected void Application_Start
{
<snip>
RegisterBundles(BundleTable.Bundles);
}
在我的根布局页面上有这些
<link rel="stylesheet" type="text/css" href="@Styles.Url("~/Assets/CSS/Jcdc.css")" />
<script type="text/javascript" src="@Scripts.Url( "~/Assets/JavaScript/jquery-1.4.2.min.js")"></script>
我的 web.config 有 debug = false
<compilation debug="false" targetFramework="4.0">
但是当我 运行 并在页面上查看源代码时...我仍然看到这个。
<link rel="stylesheet" type="text/css" href="/CIS3G/Assets/CSS/Jcdc.css" />
...
<script type="text/javascript" src="/CIS3G/Assets/JavaScript/jquery-1.4.2.min.js"></script>
这意味着缩小和捆绑不起作用,对吗?
本文
表明我应该期待
所以它显然不起作用...
有人看到我遗漏了什么,我读过的所有内容都告诉我它应该有效吗?
是否启用优化,参考:https://msdn.microsoft.com/en-us/library/system.web.optimization.scripts.render(v=vs.110).aspx
要启用捆绑和缩小,请将调试值设置为 "false"。您可以使用 BundleTable class 上的 EnableOptimizations 属性 覆盖 Web.config 设置。以下代码启用捆绑和缩小并覆盖 Web.config 文件中的任何设置。
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
// Code removed for clarity.
BundleTable.EnableOptimizations = true;
}
注意:除非EnableOptimizations
为true或者Web.config文件中compilation Element中的debug属性设置为false,否则文件不会被捆绑或缩小。此外,将不使用文件的 .min 版本,将选择完整的调试版本。 EnableOptimizations
覆盖 Web.config 文件中编译元素中的调试属性。
您的根布局中的代码似乎有误。您仍然直接添加对您的 js 和 css 的引用。
您需要在根布局文件的 head 标签中添加这两行。
<head>
@Scripts.Render("~/Bundling/bundledjs")
@Styles.Render("~/Bundling/bundledcss")
</head>