我注意到,当我部署到 Heroku 时,javascript 功能不起作用(例如 Bootstrap Popover、Buttons 等)。我正在使用 rails 3.2.2,ruby 1.9.3。这些功能在本地主机上工作。部署到 Heroku 时似乎没有显示任何错误(这些功能根本不显示)。
有任何想法吗?谢谢!
我注意到,当我部署到 Heroku 时,javascript 功能不起作用(例如 Bootstrap Popover、Buttons 等)。我正在使用 rails 3.2.2,ruby 1.9.3。这些功能在本地主机上工作。部署到 Heroku 时似乎没有显示任何错误(这些功能根本不显示)。
有任何想法吗?谢谢!
手动预编译对我有用。
bundle exec rake assets:precompile
在你推到heroku之前。
我有完全相同的问题(我对 Rails 很陌生)。我最终通过重新排列 application.js 中文件的顺序解决了这个问题:
//= require jquery
//= require jquery_ujs
//= require twitter/bootstrap
为了使 javascript 在开发中工作,“require jquery”需要在“require twitter/bootstrap”之后。在生产中,jquery 需要放在第一位。不确定是什么原因造成的,但现在部署到 Heroku 时它可以工作。
我用了这两个帖子:
检查您的 production.rb 文件。我相信这条线需要是:
config.assets.compile = true
我相信这默认设置为 false 。
请记住,您通常在 localhost 上执行的所有操作都必须使用 heroku。确保你heroku run rake assets:precompile
.
我也有类似的问题,但问题也发生在本地主机上。
您可能正在使用 rails-bootstrap gem。它安装了一个文件 bootstrap.coffee.js 这个文件是罪魁祸首。它使用了 .popover 并且不包括相关插件。我对此进行了评论,因为无论如何我都没有使用它,但是您应该考虑包括用于引导的 popover 插件。
检查了我的应用程序的缩小 js,并且 popover 在文件中出现了两次。
确保在您的 javascript 资产中仅声明bootstrap
和之一boostrap-sprockets
从文档:
bootstrap-sprockets 和 bootstrap 不应同时包含在 application.js 中。
bootstrap-sprockets 提供单独的 Bootstrap Javascript 文件(例如,alert.js 或 dropdown.js),而 bootstrap 提供包含所有 Bootstrap Javascript 的串联文件。
确保只有自举链轮和自举链轮之一
更新链轮对我有用:bundle update sprockets
如果您已经尝试过heroku run rake assets:precompile
,但 JS 仍然无法正常工作,请尝试heroku restart
在预编译资产后重新启动服务器。