javascript - 捆绑和缩小 - 当启用的脚本不起作用时

标签 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(“~/bundles/jqueryval”) @Scripts.Render(“~/bundles/session”) 但是当启用缩小功能时,我在 Chrome 控制台中收到此错误:

  • 未捕获的语法错误:意外的标识符 jqueryval:1
  • 未捕获的语法错误:意外的标识符 session :1

我还可以在 Chrome 开发者工具的选项卡页面“源”中看到我的脚本 - 它们已成功缩小。花了足够的时间试图解决这个问题。这个错误的原因可能是什么? 提前致谢。

最佳答案

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

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

关于javascript - 捆绑和缩小 - 当启用的脚本不起作用时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27141157/

相关文章:

javascript - 使用ajax将数据从文本框提交到asp net mvc Controller

asp.net-mvc - 与云集成捆绑的建议策略和库

javascript - 如何从ajax返回的对象中获取值

javascript - 在 Javascript/Jquery 中执行 url 而不在浏览器上打开它

javascript - Contenteditable div 或 span 调整大小直到达到最大长度?

c# - 如何将通用对象传递给 Aspx 页面

javascript - 了解类 : Compose a Triangle from extending 3 points?

asp.net-mvc - Mvc 3 应用程序随机停止(特别是在回收后)IIS 7.5 集成模式

css - 专有代码,使页面代码无法访问

twitter-bootstrap - 集成 Font Awesome、Less、Twitter Bootstrap 和 MVC4 捆绑/缩小