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" %>
- 随机显示NoMethodError:未定义的方法`empty?’ 0:Fixnum
- Mongo :: OperationFailure – 使用from_uri时需要登录
- Twitter“无法validation您”错误
- 无法在Heroku上部署Ruby on Rails应用程序?
- Heroku Scheduler:CreditsController的未定义局部变量或方法`params’:Class
- 如何确定在Heroku Performance dyno上运行的Puma工作者和线程的正确数量?
- Heroku上的NoMethodError,但不是本地的
- 强制Rails Heroku App从subdomain.herokuapp.com到顶点域?
- Heroku-无法在任何来源中找到paperclip-3.1.3