【发布时间】:2016-11-24 04:01:12
【问题描述】:
所以,我有一个 ASP.NET 项目,在调试模式下,我的 HTML 源代码中包含以下行:
<script src="/Scripts/jquery-2.2.4.js"></script>
但是,当我部署项目时,我的站点在源代码中有以下行:
<script src="/bundles/jquery?v=Ww-VxqepLI91N7FDR1JXgRvM347mWv5Bv_0D4LsyGEk1"></script>
我认为这与捆绑/缩小有关。这个是正常的。不正常的是,即使我尝试使用 jQuery 2.2.4,捆绑/缩小的 jQuery 源似乎同时包含 jQuery 2.2.4 和 3.0.0(我通过打开页面并注意到多个副本验证了这一点相同的功能,包括版本号)。因此,我网站的 JavaScript 失败了,说 Bootstrap 需要 jQuery >= 1.9.1 和
在我的一生中,我无法弄清楚这个额外的 jQuery 文件是从哪里来的。
References.js:
/// <autosync enabled="true" />
/// <reference path="bootstrap.min.js" />
/// <reference path="jquery.validate.min.js" />
/// <reference path="jquery.validate.unobtrusive.min.js" />
/// <reference path="jquery-2.2.4.min.js" />
/// <reference path="modernizr-2.8.3.js" />
/// <reference path="respond.matchmedia.addlistener.min.js" />
/// <reference path="respond.min.js" />
NuGet(仅限 jQuery 结果):
jQuery v2.2.4
No dependencies.
jQuery.Validation v1.15.0
jQuery (>= 1.4.4)
Microsoft.jQuery.Unobtrusive.Validation v3.2.3
jQuery (>= 1.8.0)
jQuery.Validation (>= 1.8.0)
packages.config:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Antlr" version="3.5.0.2" targetFramework="net46" />
<package id="bootstrap" version="3.3.6.1" targetFramework="net46" />
<package id="EntityFramework" version="6.1.3" targetFramework="net46" />
<package id="jQuery" version="2.2.4" targetFramework="net46" />
<package id="jQuery.Validation" version="1.15.0" targetFramework="net46" />
<package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net46" />
<package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net46" />
<package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net46" />
<package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net46" />
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.1" targetFramework="net46" />
<package id="Microsoft.jQuery.Unobtrusive.Validation" version="3.2.3" targetFramework="net46" />
<package id="Microsoft.Net.Compilers" version="1.3.2" targetFramework="net46" developmentDependency="true" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net46" />
<package id="Modernizr" version="2.8.3" targetFramework="net46" />
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net46" />
<package id="Respond" version="1.4.2" targetFramework="net46" />
<package id="WebGrease" version="1.6.0" targetFramework="net46" />
</packages>
据我所知,所有依赖项都已满足。我想这些包中的一个可能正在尝试包含 jQuery 3。
任何帮助将不胜感激。我试过几次卸载并重新安装 jQuery 和相关库。如果需要任何其他信息,请告诉我!
编辑:
禁用捆绑的结果如下。 HTML 页面现在有:
<script src="/Scripts/modernizr-2.6.2.js"></script>
<script src="/Scripts/modernizr-2.8.3.js"></script>
... and ...
<script src="/Scripts/jquery-1.10.2.js"></script>
<script src="/Scripts/jquery-2.2.4.js"></script>
<script src="/Scripts/jquery-3.0.0.js"></script>
任何想法是什么原因造成的?
【问题讨论】:
-
您是否尝试过禁用捆绑、查看源代码并单独浏览每个
<script>文件?据我所知,缩小/捆绑永远不会添加未包含在非缩小版本中的文件。虽然它可能引用script.min.js代替script.js(如果存在'.min.js' 版本) -
@MartinHansenLennox 我已经更新了我的 OP 以包含禁用捆绑的结果。这个问题似乎比我想象的还要糟糕。另外,很抱歉,如果我的 cmets 向您发送了垃圾邮件;我试图在此评论中格式化代码。
标签: javascript jquery asp.net twitter-bootstrap nuget