Rails 4 - 预编译资产打破了我的Bootstrap下拉菜单

时间:2014-09-07 02:19:46

标签: css ruby-on-rails twitter-bootstrap ruby-on-rails-4 heroku

我正在使用Bootstrap构建Rails应用程序以进行移动扩展。当我部署到Heroku时,我的所有资产都丢失了。我认为在Rails 4中已经修复了,但无论如何。我使用' rails_12factor'预编译了所有资产。现在我的所有图像和样式都渲染得很好,但是下拉菜单莫名其妙地什么也没做。

我在编译中做错了吗?我去了;

$ rake assets:precompile
$ git add .
$ git commit -a -m "Asset Fix"
$ git push heroku master

......我的菜单坏了。

这就是现在的样子; http://rocky-crag-1181.herokuapp.com/

调整浏览器大小以重新创建中断。

Repository at; https://github.com/SoundBank/soundbank02

2 个答案:

答案 0 :(得分:1)

您的应用程序运行两个jQuery版本。 rails提供最新的jQuery版本,因此无需包含额外版本。如果您需要这样做,请更换

  

// = require jquery

此行包含您的jQuery文件

  

// = require jquery-1.10.2.min.js

但请记住你的jQuery文件应该在

  

应用程序/资产/ JavaScript的/

您的application.html.erb

<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>

此行应该是文件的结尾,但是在正文关闭标记之前。

现在在终端上点击此命令

cd /sites/<app_name>
rm public/assets -R
rake assets:precompile

在这里:D

答案 1 :(得分:0)

我的app / assets文件夹中的jquery和bootstrap的冗余版本在生产中的预编译期间以某种方式发生冲突。我刚从目录中删除它们,更正了我的application.js,并运行了另一个rake资产:precompile

这使问题困惑。随着旧脚本被淘汰,我能够先命令jquery加载(感谢SSR)。

现在响应式菜单和背景轮播都与jquery很好地搭配。

顺便提一下,基本模板是Bootswatch的United,我删除的捆绑脚本是

bootstrap.js
jquery-1.10.2.min.js

从现在开始,我将更加仔细地查看已下载模板中的冲突脚本。