ASP.NET Bundling – 忽略第二个JS文件
我使用ASP.NET的捆绑和缩小功能设置了一个简单的测试.我有两个非常简单的js文件:
?/ JS / Site.js (function echo1() { alert("this is site.js"); })(); ?/ JS / test.js (function echo2(value) { alert("and this is test.js"); })(); 我创建了一个包如下: bundles.Add(new ScriptBundle("~/bundles/scripts/site-globals").Include( "~/JS/Site.js","~/JS/test.js")); 并使用@ Scripts.Render(“?/ bundles / scripts / site-globals”)引用页面上的包 当我在调试下运行该站点(< compilation debug =“true”targetFramework =“4.5”/>在web.config中)时,我得到了预期的结果 – 两个警告框一个接一个地显示. 但是,当我运行change to release(< compilation debug =“false”targetFramework =“4.5”/>)时 – 我只看到第一个警告框,并且发送到浏览器的组合JS文件完全忽略了test.js的内容 “合并和缩小”输出如下所示,错误地仅包含来自Site.js的代码: (function(){alert("this is site.js")})() 关于为什么会发生这种情况的任何想法都将非常感谢!谢谢 解决方法
我发现了造成这个问题的原因.如果任何javascript文件的注释为最后一行,则它们将在没有换行符的情况下组合在一起,从而导致下一个文件的第一行被注释掉.
这是关于堆栈溢出的另一个问题的链接,它说明了这一点:https://stackoverflow.com/a/14223945/11459631 就我而言,我使用Web Essentials Visual Studio插件来缩小我的javascript文件.它正在为每个JS文件创建一个.js.map文件,并且在每个.min.js文件的末尾都是这样的注释行,结果导致了问题: //@ sourceMappingURL=somefile.min.js.map 由于我不需要映射文件,因此我使用选项关闭此功能 – > Web Essentials – > Javascript – >将生成源映射(.map)设置为false 希望这可以帮助任何发现此问题的人! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 为什么我的Html帮助者没有智能感?
- asp.net-mvc-3 – 是否可以在Javascript文件中使用razor语法
- 如何更改.Net页面将在其下运行的扩展名?
- asp.net-core-mvc – ASP.NET Core MVC控制器在单独的程序集
- asp.net – 错误:数据绑定方法(如Eval(),XPath()和Bind()只
- 阻止ASP.NET MVC调用模型类中的所有getter
- asp.net – 计算Twitter上特定单词的结果数
- asp.net-mvc – 如何将OpenId与ASP.Net成员集成在MVC中
- asp.net – 如何直接在aspx布局页面中嵌入SharePoint 2013
- asp.net-mvc – 什么是Razor中的ViewBag.Title?