当我在开发模式是,一切正常,我有以下的.js输入命令:滑轨资产管道编译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>
并在生产中,它是这样的:
<!-- Scripts -->
<script src="/assets/application-afbc85ff07d9057a50dee5713b8bccdf.js"></script>
<script>
$(document).ready(function(){
$("#countdown").countdown({
date: "3 march 2014 12:00:00",
format: "on"
},
function() {
// callback function
});
});
</script>
问题是我在生产模式中遇到一些我无法理解的错误。第一个错误是:
对countdown的调用是在导入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>
所以我觉得直列脚本正在被执行。这很奇怪。
是的,我做到了,这是最后一个,8script.js。 – Jirico
尝试将setInterval放在document.ready中而不是在它之外 –
尝试使用rake资源预编译资源:预编译 - 跟踪部署应用程序之前的RAILS_ENV =生产 – Monideep