【问题标题】:Bootstrap JavaScript works on localhost but not on webhostBootstrap JavaScript 适用于 localhost 但不适用于 webhost
【发布时间】:2013-03-26 19:31:54
【问题描述】:

我正在使用通过 Buget 安装的 Twitter Bootstrap 到 ASP.NET MVC 应用程序。然而,我惊讶地发现,我所有过去在 localhost 上工作的引导 JavaScript,实际上在上传到我的网络托管服务提供商时仍然停止工作。

我完全被这个问题所困扰,我似乎无法弄清楚出了什么问题。

【问题讨论】:

    标签: asp.net-mvc-4 twitter-bootstrap


    【解决方案1】:

    您的一些依赖于 jQuery 的脚本在 jQuery 加载之前就已包含在内。

    • bootstrap-dropdown.js 包含在 jQuery 之前
    • 您在第 75 行的自定义 javascript 包含在 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>
    

    以及在包含 jQuery 捆绑包之后,从第 75 行到页面底部的自定义 javascript。或者将您的 jQuery 捆绑包移动到您的 &lt;head&gt; 中。这是您的偏好 - 请参阅此问题:Should Jquery code go in header or footer? 关于该特定问题...

    您说它在您的本地机器上而不是在远程服务器上工作 - 如果确实如此,那么我最好的猜测是,这与捆绑/缩小的工作方式不同这一事实有关,具体取决于您是否处于调试或释放模式。


    更新 基本上,在调试版本中,不会对您的脚本和 css 执行捆绑/缩小。您在捆绑包中引用的每个 &lt;link&gt;&lt;script&gt; 都将作为单独的文件包含在内,不会对其应用任何转换。在发布版本中,捆绑包中的文件被连接到一个文件中,并对其应用缩小等转换。根据您的评论,为了在您的本地站点和已发布站点中获得调试行为,我看到了 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,并确保您的样式/脚本包含在正确的顺序中。

    【讨论】:

    • 是的,我得出的结论是捆绑和缩小问题。它的工作方式取决于发布模式还是调试模式。关于如何规避这一点的任何想法,因为我认为它们都是一样的
    【解决方案2】:

    在你的页面中有

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

    ...文件类型有问题,也许应该是

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

    而且您的 Modernizr 文件存在路径问题,请检查路径是否正确且文件是否存在:

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

    可能还有其他问题,但首先纠正这两个问题并没有什么坏处。

    祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-01
      • 1970-01-01
      • 2016-10-10
      • 2013-07-13
      • 2014-02-26
      • 1970-01-01
      • 2012-12-01
      • 2018-10-10
      相关资源
      最近更新 更多