尝试将捆绑应用于脚本,当以旧方式(手动)定位到页面时,该脚本运行良好。 这是捆绑注册:
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/