部署到 Heroku 后引导程序样式丢失

Ran*_*ake 4 css ruby ruby-on-rails heroku twitter-bootstrap

根据我过去两天的谷歌搜索,我加入了数百(如果不是数千)在部署到 Heroku 时丢失引导程序样式的人。与其他人一样,引导样式在本地计算机上运行良好,但在部署的 Heroku 站点上不存在。我很困惑。我使用的是 Rails 4.2.4 和 ruby​​ 2.2.3。(如果这有影响的话,我也在使用 RubyMine。我不认为有影响。我尝试使用“普通”git 和 sublime 进行部署,但没有什么区别。)这是我所做的:

  1. 我的 application.html.erb 中有指向 maxcdn 的链接(css 和 js)
  2. 我将application.css的名称更改为application.scss(并且我也尝试了application.css.scss)
  3. 我将 @import 指令(boostrap-sprockets 和 bootstrap)添加到 application.scss
  4. 我将 //= require bootstrap-sprockets 添加到 application.js (在 Turbolinks 条目之后)。
  5. 我添加了 gems bootstrap-sass、autoprefixer-rails 和rails_12factor 并进行了捆绑安装
  6. 我在 config/environments/production.rb 中将 config.assets.compile 从 false 更改为 true
  7. 我还尝试了预编译资产,但引导样式仍然丢失。

我相信这就是我需要做的一切才能让它发挥作用。如上所述,它在本地计算机上运行良好。

我尝试了网上建议的许多解决方案,但都不起作用。很难说哪些是适用的,因为这似乎已经是一个好几年的问题了(我的谷歌搜索返回了这样的问题,并建议了解决方案,从 2012 年到现在)。我确信其中一些解决方案不再适用(对于 Rails v4)。

与往常一样,我们将不胜感激任何帮助。

Cai*_*lou 6

尝试从头开始一个项目,并使 Bootstrap 在生产环境中运行。我用 maxcdn 方法成功做到了这一点。

这是我为包含 bootstrap maxcdn 所做的操作:

app/views/layouts/application.html.erb,在标签末尾<head>

<!-- BOOTSTRAP -->
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css" rel="stylesheet">
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"> </script>
Run Code Online (Sandbox Code Playgroud)

我只做了这个,没有做其他的。即使在 Heroku 上的生产中,它也很有魅力。