捆绑和缩小 - 启用后脚本无法正常工作

时间:2014-11-26 04:08:37

标签: javascript asp.net-mvc bundling-and-minification

尝试将捆绑应用于脚本,这些脚本以旧方式(手动)位于页面时工作正常。 这是捆绑注册:

Bundle sbundle = new ScriptBundle("~/bundles/jqueryval").Include(
            "~/Scripts/jquery-{version}.js",
            "~/Scripts/menu-correction.js",
            "~/Scripts/validation-rules.js",
            "~/Scripts/jquery.unobtrusive*",
            "~/Scripts/jquery-ui-{version}.js",
            "~/Scripts/jquery.validate*");
        bundles.Add(sbundle);

        bundles.Add(new ScriptBundle("~/bundles/session").Include(
            "~/Scripts/jquery.plugin.js",
            "~/Scripts/jquery.countdown.js",
            "~/Scripts/session-management.js"));
             //others

然后在布局页面调用中:     @ Scripts.Render("〜/束/ jqueryval&#34)     @ Scripts.Render("〜/束/会话&#34) 但是当启用缩小功能时,我在chrome控制台中出现了这个错误:

  • 未捕获的SyntaxError:意外的标识符jqueryval:1
  • 未捕获的SyntaxError:意外的标识符会话:1

此外,我可以在标签页中看到我的脚本"来源" Chrome开发人员工具 - 他们成功地缩小了。花了足够的时间来解决这个问题。这个错误的原因是什么? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

我提供的信息不足:Application_PostRequestHandlerExecute方法中有一些逻辑,它将某些标签直接写入响应流(js需要)。我注意到直接在响应流中用捆绑编写的标签实际上是在最小化的js文件的末尾写的。因此,语法被破坏而js文件不起作用(没有捆绑我的方法工作正常)。 解决方案:将我的逻辑从Application_PostRequestHandlerExecute转移到Application_AuthorizeRequest方法,该方法最初应位于此处。

<强>更新
好吧,标签生成逻辑完全从Application_PostRequestHandlerExecute方法中删除,因为现在我明白这是绝对错误的想法。