2013-04-04 123 views

回答

9

一些依赖于jQuery的脚本将在jQuery加载前被包含。

  • 引导-dropdown.js是jQuery的之前包括
  • 您的自定义JavaScript上线75的jQuery

我建议移动

<script src="/Scripts/bootstrap.js" type="text/javascript"></script> 
<script type="text/javascript" src="http://twitter.github.com/bootstrap/assets/js/bootstrap-dropdown.js"></script> 

和自定义包含的JavaScript从第75行开始,到包含jQuery包之后的页面底部。或者也可以将你的jQuery包放入你的<head>。这是你的首选项 - 看到这个问题:Should Jquery code go in header or footer?关于那个特定的问题...

你说它在你的本地盒子上,而不是在远程服务器上 - 如果真的如此,那么我最好的猜测是,这与捆绑/缩小的工作方式不同,这取决于您处于调试模式还是发布模式。


UPDATE 基本上,在调试版本,没有捆绑/缩小时在你的脚本和CSS进行。您在捆绑中引用的每个<link><script>都将作为单独的文件包含在内,而不会对其应用转换。在发布版本中,捆绑包中的文件被连接在一起成为一个文件,并将诸如缩小等转换应用于它们。根据您的评论,为了获得本地和已发布站点的调试行为,我看到3个选项:

1.在您的发行版本中,将web.config中的编译调试标志设置为true。

<system.web> 
    <compilation debug="true" /> 
    <!-- Lines removed for clarity. --> 
</system.web> 

我不会特别推荐这个,因为你的发布版本通常不应该被标记为正在调试。但这是一个有用的设置,可以快速切换到您的发布版本,以检查您的javascript/css在关闭时是否正常工作。

2.在代码中,关闭捆绑包表中的捆绑优化。

public static void RegisterBundles(BundleCollection bundles) 
{ 
    // other code... 
    BundleTable.EnableOptimizations = false; 
} 

3.不要这么做。

行为上的差异是设计上的,也是有意义的 - 在你的本地机器上进行开发时,你可以看到所有单独的脚本/ css文件,并且以非未定义的形式,这使得调试更容易。发布后,这些文件将压缩为一个压缩文件,这将减少您网站的加载时间。

我个人推荐选项3,并确保您的样式/脚本按正确的顺序包含在内。

+0

是的我得出了捆绑和缩小问题的结论。它的工作方式取决于在发布模式还是调试模式下。任何想法如何规避这一点,因为我认为他们都是一个一样的 – 2013-04-05 17:26:15

+0

@PeterEdike请参阅我的更新的答案。 – ngm 2013-04-08 07:57:10

1

在你的页面你有

<link href="/Content/bootstrapcss" rel="stylesheet"/> 

...有与该文件类型昙花一现,或许这应该是

<link href="/Content/bootstrap.css" rel="stylesheet"/> ? 

而且还有你的Modernizr的文件的路径问题,检查路径是正确的,文件存在:

http://bipscore.com/Scripts/modernizr-1.7.min.js 

可能还有其他问题,但不会伤害到g先将这两个更正。

祝你好运!

相关问题