asp.net-mvc – 为什么MVC4捆绑捆绑Knockout.js?

我已经下载了MVC4并试图弄清楚捆绑功能在标准项目中的工作原理.似乎有捆绑:
<script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Scripts/js")"></script>

返回所有jquery.js文件,但不包括所包含脚本中的knockout.js文件.为什么是这样?还有什么是_references.js文件,为什么knockout.js文件被注释掉了?

解决方法

如果你查看你的项目Global.asax文件,你应该找到这样的东西:
protected void Application_Start()
{
    ...
    BundleTable.Bundles.RegisterTemplateBundles();
}

现在RegisterTemplateBundles只注册预定义的脚本子集:

> jquery- *
> jquery.mobile *
> jquery-ui *
> jquery.unobtrusive *
> jquery.validate *
> MicrosoftAjax.js
> MicrosoftMvc.js
> modernizr *
> AjaxLogin.js

如果您想要一些额外的文件,可以将RegisterTemplateBundles更改为EnableDefaultBundles:

protected void Application_Start()
{
    ...
    BundleTable.Bundles.EnableDefaultBundles();
}

或者创建自己的自定义捆绑包(您可以阅读有关捆绑和缩小的更多信息here).您还应该知道EnableDefaultBundles会对性能产生一些影响.

_references.js文件由Visual Studio用于JavaScript智能感知.您可以从以下文章中了解更多信息:

> JavaScript Intellisense in VS11,The _references.js File

相关文章

ASP.NET与IIS是紧密联系的,由于IIS6.0与IIS7.0的工作方式的...
在之前的ASP.NET是如何在IIS下工作的这篇文章中介绍了ASP.NE...
这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识...
Some samples are below for ASP.Net web form controls:(fr...
问题描述: 对于未定义为 System.String 的列,唯一有效的值...