单个Javascript函数不能在Heroku上工作

Single Javascript function not working in on Heroku

本文关键字:Heroku 工作 不能 Javascript 函数 单个      更新时间:2023-09-26

我刚刚部署了一个rails应用到Heroku,发现只有一个javascript函数。函数officerCheck()存在于它自己的文件officerCheck.js中。由初始化文件init.js调用,行为officerCheck

函数如下;日志的第一个输出甚至没有显示

function officerCheck(){
    console.log("officer check in");
    var change=0;
    $('#toggle-two-wrapper').on('change', function(){
        if(change===0){
        checking();
        }else{
            change=0;
        }
    });
    function checking(){
        var alert=0;
        var existingRoles=[];
        neededRoles=["President", "Secretary", "Treasurer"];
        $("select.officer_role").each(function(i,e){
            existingRoles[i]=$(e).val();
            console.log("existing Roles "+existingRoles[i]);
        });
        $(neededRoles).each(function(i,e){
            if($.inArray(e,existingRoles)==-1){
                alert=1;
                $('div#final-submission').prepend("<span class='warning' style='display:block'>"+e+" needed.</span>");
                $("span.warning").delay(9000).slideUp("medium");
            }
        });
        console.log("alert equals "+alert);
        if(alert==1){
            console.log("we're in");
            change=1;
            $('div.incorporation_submit #toggle-two').bootstrapToggle('off');
        }
    }
}

以下是我到目前为止调查的列表:

  • 所有其他javascript函数都可以工作(包括那些由init.js调用的函数)
  • 函数officerCheck确实在我的本地主机上工作,并且heroku与该机器同步。
  • 当我浏览heroku托管的站点时,函数officerCheck及其各自的调用确实由浏览器加载。(我可以在firebug的脚本选项卡中看到两者)。
  • 如果我将函数的内容剪切并粘贴到firebug中,它们仍然可以工作。(让我相信heroku只是不喜欢我调用函数的方式)
  • officerCheck();从firebug调用函数不起作用
  • 然而,将整个函数加载到firebug中并使用officerCheck();调用它确实有效。

我猜我在耍马虎的把戏,这是Heroku不会容忍的。任何想法、想法或告诫都欢迎。

运行在Heroku上的Rails应用程序可能需要做一些工作才能让资产管道为自定义脚本提供服务。

你可以把你的脚本移到application.js中,并检查它是否从那里运行。

如果你想保持你的脚本在它所在的地方,见Rails javascript资产丢失后预编译