我们正在使用ASP.NET Web优化框架,具有Bundle 包和缩小功能.

bundles.Add(new ScriptBundle("~/st-scripts-load-first.js")
       .Include("~/Resources/JavaScript/jquery-1.9.0.js",
                "~/Resources/JavaScript/modernizr.form-placeholder.js"));

我们都有jquery-1.9.0.js和jquery-1.9.0.目录中的min.js.如果没有.min file优化框架将自动生成一个.如果你的手机坏了,那就没用了.min文件是否存在

/* Minification failed. Returning unminified contents.
(5,2-3): run-time warning JS1195: Expected expression: *
(11,60-61): run-time warning JS1004: Expected ';': {
(395,2-3): run-time warning JS1195: Expected expression: )
(397,21-22): run-time warning JS1004: Expected ';': {
(397,4590-4591): run-time warning JS1195: Expected expression: )
(398,28-29): run-time warning JS1195: Expected expression: )
(398,84-85): run-time warning JS1002: Syntax error: }
(402,44-45): run-time warning JS1195: Expected expression: )
(408,1-2): run-time warning JS1002: Syntax error: }
(393,5-22): run-time warning JS1018: 'return' statement outside of function: return Modernizr;
(404,5,406,16): run-time warning JS1018: 'return' statement outside of function: return !!('placeholder' in (Modernizr.input || document.createElement('input')) &&
               'placeholder' in (Modernizr.textarea || document.createElement('textarea'))
             );
 */

推荐答案

我确信问题的原因是jquery-1.9.0的最后一行.min.js:

//@ sourceMappingURL=jquery.min.map

jQuery1.9的未统一版本不包含此内容.我马上解释原因.

我注意到当jquery-1.9.0.min.js与另一个文件Bundle 在一起,另一个文件是follows jquery-1.9.0.min.js——从某种意义上说,下面的js文件已经损坏.

原因是以下文件的开头被附加到jQuery的"//@"行,这意味着它随后成为一条长的扩展注释.在你的情况下,这意味着

window.Modernizr=function(n,t,i){function...

从Bundle 过程中输出的Modelnizr开头的脚本为如下注释:

//@ sourceMappingURL=jquery.min.map window.Modernizr=function(n,t,i){function...

这方面的分数是discussion on jQuery's Bug Tracker分.

您可以 Select 删除最后一行,或将其包装成多行注释符号:

/*
//@ sourceMappingURL=jquery.min.map
*/

此外,您还可以看到,在其缩小版本的末尾,Modern nizr还包含一个源图.而且有很好的理由.

它背后的基本原理是在使用代码的缩小版本时帮助您调试问题.这一行告诉浏览器,这个缩小的文件映射到另一个可以帮助调试的文件.要利用这一点,您需要将该引用文件(jquery.min.map)放在服务器上或下载到客户端.另外,我相信Chrome是目前唯一支持这一功能的浏览器;Firefox仍在开发中.

This page对源图有很好的解释.

因此,总之,删除它不会真正给您带来任何问题,除非您希望在浏览器中调试时映射回源代码的原始版本.在你的情况下,因为ASP.NET的优化框架可以工作,当它达到debug="True"时,它将提供未统一的版本,因此您可能不需要使用sourceMappingURL.

Asp.net相关问答推荐

无法加载文件或程序集.无效指针(HRESULT 异常:0x80004003 (E_POINTER))

cookie 存储在系统的什么位置?

Azure Service Fabric 是否与 Docker 做同样的事情?

获取在 asp.net identity 2.0 中分配了角色的用户列表

将命令行参数传递给 ASP.NET Core 中的 Startup 类

ASP.NET-MVC 中的表单发布上的 FormCollection 为空

如何判断一个IP地址是否是私有的?

在属性中实现逻辑是一种好习惯吗

如何计算/查找给定日期的周数?

如何从 Asp.net Mvc-3 发送邮箱?

如何在 ASP.NET 页面中以编程方式生成 401 错误

修改 web.config 时如何防止 ASP.NET 应用程序重新启动?

如何在 ASP.NET 中获取原始请求正文?

使用 VirtualPathProvider 从 DLL 加载 ASP.NET MVC 视图

ASP.NET:在 Response.Redirect(...) 之后代码会发生什么?

System.Linq.IQueryable 不包含Where的定义

在控制器 asp.net-core 中获取当前区域性

ASP.NET MVC3 局部视图命名约定

Facebook 连接和 ASP.NET

Visual Studio 2013 ASP.NET 项目中 Antlr 包的用途是什么?