有效的jQuery脚本未在生产模式下加载

问题描述 投票:0回答:2

在生产模式下我的网站遇到了一些麻烦。 从jQuery脚本中获取一些错误,因此无法加载。 以为jQuery.noConflict(); 可以解决它,但它让我失望! 我现在尝试了很多东西,所以我愿意接受任何有关解决方案或调试的建议。

继承我的错误:

Uncaught controls.js requires including script.aculo.us' effects.js library
/#about:30Uncaught TypeError: Object [object Object] has no method 'cycle'
/#about:12Uncaught TypeError: Object [object Object] has no method 'cycle'

解决它的人获得金星! 谢谢 ;(

jquery ruby-on-rails production-environment
2个回答
2
投票

在解决后续错误之前,您需要修复第一个错误(因为它们可能来自级联故障)。 根据你未被捕获的异常,你有一个名为“controls.js”的脚本,它需要在页面上加载script.aculo.us库才能工作。 从这里下载库Script.aculo.us将它放入您的web目录,并在controls.js加载之前包含它:

<script type="text/javascript" src="/location/to/scriptaculous.js"></script>

0
投票

金星? 好的我有类似的问题。 你的问题不是jQuery.noConflict(); 既不是原型js,而是你没有将所有内容添加到noconflict

1 - 所有的拳头都与不使用jquery ex的其他librairie对齐:

<script src="js/scriptaculous/lib/prototype.js" type="text/javascript"></script>

<script src="js/scriptaculous/src/scriptaculous.js" type="text/javascript"></script>

 <script language="javascript" src="js/protoplasm/protoplasm.js"></script>

 <script>
        Protoplasm.use('rte').transform('textarea.richeditor');
</script>

2 - 之后插入你的jquery文件,并在使用jquery的任何其他库或代码之前直接跟随noconflict

<script type="text/javascript"  src="js/jquery/jquery-2.1.1.min.js"></script>
<script type="text/javascript">

    $.noConflict();

    </script>

3 - 而且最重要的是,这是你错过了重点打开你所拥有的每一个javascript代码作为js使用jquery如Bootstrap.min.js或app.js,如果你发现jquery里面,然后把它放在上面代码,在文件的开头(在bootstrap.min.js的开头)以下代码

jQuery( document ).ready(function( $ ) {
// Code that uses jQuery's $ can follow here.


///////////////////////////////////////////////////////////////////////////////

4-在代码的最后(在bootstrap.min.js的末尾)放入以下代码

///////////////////////////////////////////////////////////////////////////////

});

5 - 在你的页面中使用jquery在其他代码之间放置所有其他代码

 jQuery( document ).ready(function( $ ) {
    // Code that uses jQuery's $ can follow here.


    ///////////////////////////////////////////////////////////////////////////////


 ///////////////////////////////////////////////////////////////////////////////

    });

正如你所看到的那样仅靠jquery noconflict是不够的。 如果你不想要任何干扰,你真的必须在任何地方添加这些代码甚至在外部文件中使用jquery

您可能会在使用firebug的controls.js中遇到一些错误,但所有代码都可以正常工作。 即使你删除control.js,只要scriptaculous.js在你的页面上,Firebug总会给你和类似TypeError的错误:this.element是null controls.js,但你的所有代码都将完美运行。

请不要忘记金星。 谢谢

© www.soinside.com 2019 - 2024. All rights reserved.