none
Script Bundle丢失Script Reference的问题 RRS feed

  • 问题

  • script bundle 代码:

    #region Administration Page General Scripts
                bundles.Add(new ScriptBundle("~/bundles/admin").Include(
                            "~/Scripts/excanvas.js",
                            "~/Scripts/jquery-ui.custom.js",
                            "~/Scripts/bootstrap.js",
                            "~/Scripts/jquery.flot.resize.js",
                            "~/Scripts/jquery.flot.js",
                            "~/Scripts/jquery.sparkline.js",
                            "~/Scripts/fullcalendar.js",
                            "~/Scripts/jquery.nicescroll.js",
                            "~/Scripts/unicorn.js",
                            "~/Scripts/unicorn.dashboard.js"
                            ));
     #endregion

    bundle调用代码:

            </div>
        </div>
    
    
        @Scripts.Render("~/bundles/jquery")
        @Scripts.Render("~/bundles/admin")
    </body>

    文件目录结构如下:

    运行项目后

    这是调试工具截图,看页面源代码当然也是一个样:

            </div>
        </div>
    
    
        <script src="/Scripts/jquery-2.1.3.js"></script>
    
        <script src="/Scripts/jquery-ui.custom.js"></script>
        <script src="/Scripts/bootstrap.js"></script>
        <script src="/Scripts/unicorn.js"></script>
        <script src="/Scripts/unicorn.dashboard.js"></script>
    </body>


    嗯,jquery是模版默认的bundle带进去的,暂时还没改动。

    求告知剩下的若干个JS去哪度假了……找了半个晚上也没找到。


    powered by david.

    2015年1月22日 15:12

答案

全部回复

  • 求帮助,求指导~~~

    powered by david.

    2015年1月24日 4:52
  • 突然想到,不会是因为对应的JS文件没有对应的没“.min”的版本吧?,比如

    ~/Scripts/jquery.flot.js",

    不会是因为文件夹下只有jquery.flot.min.js,没有jquery.flot.js"吧?手头没有测试环境,不过不应该这么坑吧?


    powered by david.

    2015年1月25日 4:12
  • 您好,

    您的问题和“有没有.min.js文件”没有关系的。

    请问您在您的项目中是否启用了

    BundleTable.EnableOptimizations = true;


    2015年1月26日 2:36
  • 谢谢您的回复,我并没有显式调用BundleTable.EnableOptimizations = true;,而且截图也是在Debug下,并且……即使是启用了bundle,至少也应该有个压缩过的script啊

    powered by david.

    2015年1月26日 12:55
  • 嘿嘿,又找到问题所在了:

    事实证明,如果目录中有名为“jquery.flot.min.js”的文件,即使复制这个文件并重命名为“jquery.flot.js”,bundle同样不予理睬……

    解决方案:直接删掉文件名里的“.min”就好了。

    改名后的script目录:

    也就是说,删掉第三方库压缩版js的“.min”就可以了。

    不知道这是算bug呢,还是没认真看bundle使用方法的缘故。我读书少,果然都来欺负我……


    powered by david.

    2015年1月26日 15:21
  • 其实这样说也不对。哎呀好乱。删掉“.min”可以通过debug,不过看起来不是个好办法

    powered by david.

    2015年1月27日 0:48