Javascript 应用程序在本地工作,Heroku中有错误。是因为我的async=false标记吗?
我使用了一个用各种插件编写的模板,并开始将其转换为React。将现有JavaScript文件转换为React工作超出了我的能力,因此我所做的是:Javascript 应用程序在本地工作,Heroku中有错误。是因为我的async=false标记吗?,javascript,reactjs,heroku,Javascript,Reactjs,Heroku,我使用了一个用各种插件编写的模板,并开始将其转换为React。将现有JavaScript文件转换为React工作超出了我的能力,因此我所做的是: componentDidMount(){ var loadScripts = [ './vendor/jquery/jquery.js', './vendor/bootstrap/js/bootstrap.min.js', './js/classie.js','./
componentDidMount(){
var loadScripts = [
'./vendor/jquery/jquery.js',
'./vendor/bootstrap/js/bootstrap.min.js',
'./js/classie.js','./js/cbpAnimatedHeader.js',
'./vendor/jquery.easing/jquery.easing.min.js',
'./vendor/owl-carousel/owl.carousel.js',
'./vendor/magnific-popup/jquery.magnific-popup.min.js',
'./vendor/formstone/core.js',
'./vendor/formstone/transition.js',
'./vendor/formstone/background.js',
'./vendor/mixitup/jquery.mixitup.js',
'./vendor/wow/wow.min.js',
'./js/contact_me.js',
'./js/jqBootstrapValidation.js',
'./js/vitality.js'];
loadScripts.forEach(function(src) {
var script = document.createElement('script');
script.src = src;
script.async = false;
document.head.appendChild(script);
});
}
而且它在本地工作得很好。当我推到heroku时,我犯了很多错误。这些错误使我相信文件是异步加载的。Heroku是否允许async=false标记
以下是错误:
Uncaught TypeError: Cannot read property 'scrollTop' of undefined
at e (background.js:3)
at HTMLDocument.c (background.js:3)
at b (core.js:3)
at Object.<anonymous> (core.js:3)
at Object.<anonymous> (jquery.js:3366)
at fire (jquery.js:3187)
at Object.add [as done] (jquery.js:3246)
at Array.<anonymous> (jquery.js:3365)
at Function.each (jquery.js:365)
at Object.<anonymous> (jquery.js:3361)
contact_me.js:3 Uncaught TypeError: $(...).jqBootstrapValidation is not a function
at HTMLDocument.<anonymous> (contact_me.js:3)
at fire (jquery.js:3187)
at Object.add [as done] (jquery.js:3246)
at jQuery.fn.init.jQuery.fn.ready (jquery.js:3496)
at jQuery.fn.init (jquery.js:2927)
at jQuery (jquery.js:75)
at contact_me.js:1
background.js:3 Uncaught TypeError: Cannot read property 'container' of undefined
at jQuery.fn.init.g (background.js:3)
at jQuery.fn.init.e (core.js:3)
at jQuery.fn.init.i (core.js:3)
at vitality.js:109
at vitality.js:135
Uncaught TypeError:无法读取未定义的属性“scrollTop”
在e(background.js:3)
位于HTMLDocument.c(background.js:3)
在b(core.js:3)
反对。(core.js:3)
反对。(jquery.js:3366)
失火(jquery.js:3187)
在Object.add[完成时](jquery.js:3246)
在阵列上。(jquery.js:3365)
在Function.each(jquery.js:365)
反对。(jquery.js:3361)
联系_me.js:3未捕获类型错误:$(…)。jqBootstrapValidation不是一个函数
在HTMLDocument。(联系_me.js:3)
失火(jquery.js:3187)
在Object.add[完成时](jquery.js:3246)
位于jQuery.fn.init.jQuery.fn.ready(jQuery.js:3496)
在jQuery.fn.init(jQuery.js:2927)
在jQuery上(jQuery.js:75)
在contact_me.js:1
background.js:3未捕获类型错误:无法读取未定义的属性“container”
位于jQuery.fn.init.g(background.js:3)
在jQuery.fn.init.e(core.js:3)
位于jQuery.fn.init.i(core.js:3)
见vitality.js:109
见vitality.js:135
您可以在控制台中看到所有错误。log
您如何在问题中发布错误,而不是强迫人们访问您的站点?@JaromandaX我发布了错误。我最初列出该网站是因为我认为可能有比我更有经验的人能够看到我不知道的其他问题。你需要解决TypeError:$(…)。jqBootstrapValidation不是一个函数
-似乎你对加载脚本的顺序有问题-作为猜测,交换contact_me.js
和jqBootstrapValidation.js
的顺序-因为contact_me依赖于jqBootstrapValidation
函数,所以我问Heroku是否允许标记async=false。脚本是动态生成的,并且由于标记的存在,在本地可以正常工作。我不知道为什么它会在Heroku中这样做。async=false vs async=true不会有什么区别。。。在加载jqBootstrapValidation之前加载contac__me-但是联系人需要jqBootstrapValidation中的函数。。。尝试交换订单,查看是否至少解决了一个错误