在我们的一个页面上,我们将一些不合理的jquery推入一个脚本标记中。我试图通过将代码分成几个单独的.js文件并使用ASP MVC 4 ScriptBundle
来稍微清理一下。
但是,Chrome只显示正在加载的一个脚本,并且该脚本有一个看起来有点像GUID的奇怪名称。
如果我选择这个脚本,我可以看到只加载了包中的第一个.js文件。完全没有第二个文件。
BundleConfig
public class BundleConfig
{
// For more information on Bundling, visit http://go.microsoft.com/fwlink/?LinkId=254725
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/AgentTransmission").Include(
"~/Scripts/AgentTransmission/SetFields.js",
"~/Scripts/AgentTransmission/MarketingDivision.js"));
.
.
}
}
Scripts文件夹的屏幕截图
.cshtml创建文件(查看)
@model MonetModelFromDb.Models.AgentTransmission
@{
ViewBag.Title = "Create new Agent";
}
<div>
<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />
<script src="@Url.Content("~/Scripts/jquery.maskedinput-1.3.1.js")" type="text/javascript"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.3/moment-with-locales.min.js"></script>
@Scripts.Render("~/bundles/AgentTransmission")
呈现HTML
<div>
<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />
<script src="/Scripts/jquery.maskedinput-1.3.1.js" type="text/javascript"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.3/moment-with-locales.min.js"></script>
<script src="/bundles/AgentTransmission?v=2D1TPLuuUcxrXmQ8AbdEoyTUVF8BEXja9e0nXKAzs9Q1"></script>
修改
仅供参考我也在DEBUG模式下运行
答案 0 :(得分:0)
当您“发布”您的项目并且所选的“配置”为“发布”时,系统会将您的捆绑包合并到一个文件中,并使用类似“GUID”的名称。如果使用“调试”配置发布或构建项目,它会将捆绑包中的每个单独文件作为HTML中的单独文件。
答案 1 :(得分:0)
在RegisterBundles()
类
BundleTable.EnableOptimizations = false