捆绑脚本没有得到呈现(Bundling scripts are not getting render

2019-07-22 06:32发布

我有脚本捆绑,并用ASP .NET我已经尝试了所有流行的解决方案缩小互联网上找到,但仍然有同样的问题一个问题。

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的代码检查,我发现,对于上述资源的状态代码是Status Code: 302 Found并为Scripts/它是Status Code: 404 Not Found

而且我也无法通过点击它查看源代码访问的脚本文件,所以看起来好像没什么然而加载的所有文件和目录都理所当然地放置。 只要您的信息,我的样式表绑定工作正常。

请帮忙,谢谢。

Answer 1:

你不能给你包的名称,这也是现有目录的名称。 重命名包或添加/js ,使其正常工作:

bundles.Add(new ScriptBundle("~/Scripts/js").IncludeDirectory("~/Scripts", "*.js").IncludeDirectory("~/Scripts/kendoui", "*.js"));

@Scripts.Render("~/Scripts/js")

不存在任何其他的名字会工作为好,如

 bundles.Add(new ScriptBundle("~/ScriptMonkey").IncludeDirectory("~/Scripts", "*.js").IncludeDirectory("~/Scripts/kendoui", "*.js"));

......假设你没有/ScriptMonkey目录。



Answer 2:

您是否尝试过在捆绑的虚拟路径使用非现有的目录? 喜欢

...new ScriptBundle("~/bundle/Scripts")...


Answer 3:

接受的答案并没有为我工作。 我使用MVC 4.0上的Visual Studio 2010 SP1。 我有一个名为“jQuery的ui.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"));

从我得到这个信息在这里 。



Answer 4:

即决定是否要处理请求的包模块的逻辑,不会收购请求现有的文件或目录。 所以,这就是为什么他们住在同一个虚拟路径为现有的目录(或文件)时,你的包请求不起作用。



文章来源: Bundling scripts are not getting rendered