Javascript Rails资产管道编译js错误

Javascript Rails资产管道编译js错误,javascript,ruby-on-rails,asset-pipeline,production,Javascript,Ruby On Rails,Asset Pipeline,Production,当我处于开发模式时,一切正常,我有以下.js导入顺序: <!-- Scripts --> <script src="/assets/jquery/jquery.min.js?body=1"></script> <script src="/assets/jquery-ujs/src/rails.js?body=1"></script> <script src="/assets/1modernizr.custom.js?body=1"

当我处于开发模式时,一切正常,我有以下.js导入顺序:

<!-- Scripts -->
<script src="/assets/jquery/jquery.min.js?body=1"></script>
<script src="/assets/jquery-ujs/src/rails.js?body=1"></script>
<script src="/assets/1modernizr.custom.js?body=1"></script>
<script src="/assets/2rainyday.0.1.2.min.js?body=1"></script>
<script src="/assets/3xrain_init_youtube.js?body=1"></script>
<script src="/assets/3xxbootstrap.min.js?body=1"></script>
<script src="/assets/4classie.js?body=1"></script>
<script src="/assets/5modalEffects.js?body=1"></script>
<script src="/assets/6jquery.placeholder.js?body=1"></script>
<script src="/assets/7jquery.custom.js?body=1"></script>
<script src="/assets/8script.js?body=1"></script>
<script src="/assets/application.js?body=1"></script>
<script>

    $(document).ready(function(){
        $("#countdown").countdown({
                    date: "3 march 2014 12:00:00",
                    format: "on"
                },

                function() {
                    // callback function
                });
    });

</script>
倒计时是在application.js导入之后调用的,为什么会发生这种情况?内联脚本是否可能在application.js之前执行?如果是这样的话,为什么在使用分离文件的开发中不会发生这种情况

第二个错误是:

Uncaught TypeError: Cannot call method 'addEventListener' of null 
更新:

如果我设置一个setInterval,我会解决第一个错误,如下所示:

<script>
    $(document).ready(function(){
        setInterval(1000, function(){
              $("#countdown").countdown({
                  date: "3 march 2014 12:00:00",
                  format: "on"
                  },

                  function() {
                            // callback function
                  }
              );

        });
   });

</script>

$(文档).ready(函数(){
setInterval(1000,函数(){
$(“#倒计时”)。倒计时({
日期:“2014年3月3日12:00:00”,
格式:“on”
},
函数(){
//回调函数
}
);
});
});

所以我认为内联脚本是首先执行的。这很奇怪。

您看到这个错误是因为它前面的错误:
未捕获的TypeError:无法调用null的方法“addEventListener”

这种情况发生在生产环境中,因为所有的JS都在一个文件中,如果出现错误,则不会执行其余的JS。它在开发中起作用,因为
5modalEffects.js
是一个单独的文件,所以该文件中的错误不会影响任何其他文件


我通过将
.md close
类添加到
div#modal-1
中的close model按钮中,成功地修复了模式错误,这解决了另一个问题:)

您看到的错误是因为它前面的错误:
未捕获的TypeError:无法调用null的方法“addEventListener”

这种情况发生在生产环境中,因为所有的JS都在一个文件中,如果出现错误,则不会执行其余的JS。它在开发中起作用,因为
5modalEffects.js
是一个单独的文件,所以该文件中的错误不会影响任何其他文件


我设法通过将
.md close
类添加到
div#modal-1
中的close model按钮来修复模式错误,这解决了另一个问题:)

是的,这是最后一个,8script.js.尝试将setInterval放在document.ready内,而不是放在itTry外,以使用rake资产预编译资产:precompile--trace RAILS_ENV=production,然后再部署app@Baloo,没错,但这只是一个测试,表明内联脚本在所有application.js文件之前执行,但我认为这是一个错误的行为。@deep,我刚做了,但预编译过程中没有错误。是的,我做了,这是最后一个,8script.js。尝试将setInterval放在文档内。准备好了,而不是放在文档外,尝试使用rake资产预编译资产:precompile--trace RAILS_ENV=production,然后再部署app@Baloo,你是对的,但这只是一个测试,表明内联脚本在所有application.js文件之前执行,但我认为这是一个错误的行为。@deep,我刚刚做了,但在预编译过程中没有错误。很好!你是对的。第一个错误确实出现在开发模式中,它导致了倒计时错误。谢谢,抱歉耽误了你的时间:)太好了!你是对的。第一个错误确实出现在开发模式中,它导致了倒计时错误。感谢并抱歉占用您的时间:)
Uncaught TypeError: Cannot call method 'addEventListener' of null 
<script>
    $(document).ready(function(){
        setInterval(1000, function(){
              $("#countdown").countdown({
                  date: "3 march 2014 12:00:00",
                  format: "on"
                  },

                  function() {
                            // callback function
                  }
              );

        });
   });

</script>