编译后的Javascript无法在生产模式下工作

时间:2015-10-13 00:02:26

标签: javascript ruby-on-rails heroku

我正在本地计算机上构建应用程序。当我在生产模式下预编译并运行它时,编译的javascript停止工作。具体来说,我在一个coffeescript文件和application.js中都有javascript,两者都在assets文件夹中。所有其他javascript(即ajax表单中的jquery等)继续工作,这就是为什么我认为它必须与编译有关。

这是我的application.js文件:

//= require jquery
//= require jquery_ujs
//= require jquery-ui/autocomplete
//= require jquery-ui/dialog
//= require autocomplete-rails
//= require dresssed
//= require raphael
//= require morris
//= require best_in_place
//= require_tree .

$('.label-stock-health').popover({ html : true});

$(document).keypress(function(e) {
    if ($('.search-bar').length){
      if($(".search-bar").is(":visible")) {

      } else {
        $(".search-bar").show();
        $("#q_name_cont").focus();
      }
    }

});

$("#spinner").hide();

$(document).ajaxStart(function() {
    $("#spinner").fadeIn('slow');
  }).ajaxStop(function() {
      $("#spinner").hide();
  });

$(document).ready(function() {
        $(".show-search").click(function(){
        if ($('.search-bar').length){
            $(".search-bar").toggle();
          }
        });
        $(".best_in_place").best_in_place();
});

此功能仍可在开发模式下使用。此外,如果我将javascript硬编码到我的布局模板中,它将起作用。但没有硬编码,它就没有。

关于可能是罪魁祸首的任何建议?如果不是,那么调试它的最佳方法是什么?

更新#1 我在Chrome开发人员工具的Javascript控制台中看到的唯一两个错误发布在下面。它们还显示在我的localhost开发实例上,我的javascript功能正在全面运行。

  

不需要Google Maps API。请注册以下内容   JavaScript库   http://maps.google.com/maps/api/js?sensor=true.(anonymous功能)@   应用6ab26aa5fc5d647a3b5543af7c9838a6.js:9吨(匿名   功能)@   application-6ab26aa5fc5d647a3b5543af7c9838a6.js:9(匿名函数)   @ application-6ab26aa5fc5d647a3b5543af7c9838a6.js:9种变种:565 GET   http://www.example.com/bootstrap/glyphicons-halflings-regular.woff2   404(未找到)

4 个答案:

答案 0 :(得分:0)

我确实在upwork.com上给你写过它在这里是什么...如果它在本地主机上工作但在线上传时停止工作比权限问题。我在godady和blue主机遇到同样的问题。尝试使用权限播放。对于(在蓝色主机上)工作权限设置为5 5 4.或5 5 5我没记错。一旦弄清楚它们应该是什么,如何删除所有权限并重新上载新权限。

答案 1 :(得分:0)

这里的罪魁祸首是popover行,如果你想使用它,你需要包含popover插件。将其注释掉并部署代码,它将重新开始工作。

答案 2 :(得分:0)

我刚刚给你发了一个关于upwork的消息,但是你应该检查是否从你的application.js文件中删除turbolinks来解决这个问题:

 //= require jquery
 //= require jquery_ujs
 //= require turbolinks ** remove this line as turbolinks interferes with javascript occasionally.
 //= require_tree .

答案 3 :(得分:0)

请包含另一个文件名custom.js并更新

$(document).ajaxStart(function() {
       $("#spinner").fadeIn('slow');
 });
$(document).ajaxStop(function() {
     $("#spinner").hide();
 });