Razor 未呈现绑定脚本
我在使用ASP.NET进行脚本绑定和缩小时遇到问题 我尝试了互联网上所有流行的解决方案,但仍然有同样的问题 我的Razor 未呈现绑定脚本,razor,asp.net-mvc-4,bundling-and-minification,Razor,Asp.net Mvc 4,Bundling And Minification,我在使用ASP.NET进行脚本绑定和缩小时遇到问题 我尝试了互联网上所有流行的解决方案,但仍然有同样的问题 我的BundleConfig.cs看起来像 namespace MYPROJ{ public class BundleConfig { public static void AddDefaultIgnorePatterns(IgnoreList ignoreList) { if (ignoreList == null) return;
BundleConfig.cs
看起来像
namespace MYPROJ{
public class BundleConfig
{
public static void AddDefaultIgnorePatterns(IgnoreList ignoreList)
{
if (ignoreList == null)
return;
ignoreList.Ignore("*.intellisense.js");
ignoreList.Ignore("*-vsdoc.js");
ignoreList.Ignore("*.debug.js", OptimizationMode.WhenEnabled);
ignoreList.Ignore("*.min.js", OptimizationMode.WhenDisabled);
ignoreList.Ignore("*.min.css", OptimizationMode.WhenDisabled);
}
public static void RegisterBundles(BundleCollection bundles)
{
bundles.IgnoreList.Clear();
AddDefaultIgnorePatterns(bundles.IgnoreList);
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
…
…
//bundles.Add(new ScriptBundle("~/Scripts").Include("~/Scripts/jquery.unobtrusive-ajax.min.js", "~/Scripts/kendoui/kendo.all.min.js", "~/Scripts/kendoui/kendo.combobox.min.js", "~/Scripts/kendoui/kendo.grid.min.js"));
//bundles.Add(new ScriptBundle("~/Scripts").Include("~/Scripts/kendoui/kendo.all.min"));
//bundles.Add(new ScriptBundle("~/Scripts").Include("~/Scripts/kendoui/kendo.combobox.min"));
//bundles.Add(new ScriptBundle("~/Scripts").Include("~/Scripts/kendoui/kendo.grid.min.js"));
bundles.Add(new ScriptBundle("~/Scripts").IncludeDirectory("~/Scripts", "*.js").IncludeDirectory("~/Scripts/kendoui", "*.js"));
……
BundleTable.EnableOptimizations = true;
}
}
}
在主视图中:
@Scripts.Render("~/Scripts")
现在,当我运行所有这些之后,我得到了这个标签:
<script src="/Scripts?v=ZnxC8dcoc3fJ-hfKQHLiTe19PjJFHwPhwHPUncuBtzE1"></script>
在使用chrome code inspector时,我发现上述资源的状态代码是状态代码:302已找到
,而脚本的状态代码是状态代码:404未找到
我也无法通过在视图源中单击脚本文件来访问它,因此看起来没有加载任何内容,但是所有文件和目录都正确放置。
只是为了提供信息,我的样式表捆绑工作正常
非常感谢您的帮助。您是否尝试过使用捆绑包虚拟路径中不存在的目录?
像
决定是否处理请求的捆绑模块逻辑不会将请求接管到现有文件或目录。这就是为什么捆绑包请求与现有目录(或文件)位于同一虚拟路径时无法工作。您不能为捆绑包指定与现有目录相同的名称。重命名捆绑包或添加/js
以使其正常工作:
bundles.Add(new ScriptBundle("~/Scripts/js").IncludeDirectory("~/Scripts", "*.js").IncludeDirectory("~/Scripts/kendoui", "*.js"));
及
任何其他不存在的名称也可以使用,例如
bundles.Add(new ScriptBundle("~/ScriptMonkey").IncludeDirectory("~/Scripts", "*.js").IncludeDirectory("~/Scripts/kendoui", "*.js"));
…假设您没有/ScriptMonkey
目录。接受的答案对我不起作用。我在VisualStudio2010SP1上使用MVC4.0。我有一个名为“jqueryui.min.js”的js文件,没有加载。我的Bundle.config代码是:
bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
"~/Scripts/jquery-ui.min.js"));
我将文件重命名为jquery-ui.js,并将代码更新为
bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
"~/Scripts/jquery-ui.js"));
我从你那里得到这个信息
bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
"~/Scripts/jquery-ui.min.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
"~/Scripts/jquery-ui.js"));