Heroku和Rails 4:一些javascript无法正常工作

我正在尝试在Heroku Rails 4应用程序上显示一个javascript项目。 在我的本地开发机器上,一切都运行得很好。 无法让它在Heroku上运行。

在我的application.html.erb文件中,我添加了:

 

在另一个视图文件(events.html.erb)我有:

  $(document).ready(function() ...code to add data to a timeline using getjson()... ` 

它指的是assets> javascripts文件夹中的timeline.js文件。 添加事件时(使用Rails CRUD操作,javascript代码调用getJson()方法并将事件添加到时间轴。这在本地计算机上按预期工作。

当我推送到Heroku时,我可以通过rails添加事件,但不显示时间轴。

我最初的想法是没有在Heroku上加载Javascript,所以我添加了一个简单的:

  alert('Displays OK')  

调用,这在Heroku(以及我的本地机器)上显示正常。

在Heroku上查看页面源代码时,我可以看到:

  

所以似乎timeline.js文件是预编译的(它似乎是时间轴js的最小化版本)。

在我的本地机器上,我没有看到预编译的js文件,但我看到:

   

事实上,在Heroku上,它显示了javascript警报,但没有显示时间轴,似乎表明某些内容与预编译中的javascript代码混淆了。

我在heroku日志中看不到任何明显的东西。 它说slug编译成功完成,我看不到错误消息。

有没有办法可以强制Heroku不使用预编译的js文件,所以我可以使用Heroku:

    

我在production.rb文件中有以下内容:

 config.serve_static_assets = false config.assets.js_compressor = :uglifier config.assets.compile = true config.assets.compress = true config.assets.digest = true config.assets.debug = false 

希望有人可以帮助我。 这已经困扰了我好几天了。 任何帮助赞赏。 谢谢!

我认为你需要指定timeline.js必须预编译。 在config / environments / production.rb上,添加以下内容:

 config.assets.precompile += %w( timeline.js ) 

在您查看中,包含时间轴js:

 <%= javascript_include_tag "timeline" %>