繁体   English   中英

引导程序 styles 在部署到 Heroku 后丢失

[英]bootstrap styles missing after deploy to Heroku

基于过去两天我一直在做的谷歌搜索,我加入了数百(如果不是数千)在部署到 Heroku 时丢失引导程序样式的人。就像其他人一样,引导程序样式在本地机器,但在已部署的 heroku 站点上不存在。 我很难过。 我正在使用 rails 4.2.4 和 ruby 2.2.3。 (如果有区别的话,我也在使用 RubyMine。我认为没有。我尝试使用“普通”git 和 sublime 进行部署,但没有任何区别。)这是我所做的:

  1. 我的应用程序中有指向 maxcdn 的链接。html.erb(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. 我也尝试过预编译资产,但引导程序样式仍然缺失。

我相信这就是我应该做的让它工作的全部。 如上所述,它在本地机器上运行良好。

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

像往常一样,任何帮助表示赞赏。

尝试从头开始一个项目,并让 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>

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

我不必“尝试从头开始一个项目”。 只需添加

<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>

对我有用。

我的解决方案是在您的 CLI 中运行此命令

rake assets:clobber rake assets:precompile RAILS_ENV=development git add . git commit -m "Precompile assets in preparation for deploying to Heroku." git push heroku master

对我来说就像一个魔术!

我今天遇到了这个问题。 对我有帮助的是检查节点和纱线的版本(当然,如果你使用它)。 指出我今天使用的主要堆栈是有意义的。

gemfile:
Rails 6.1.4, ruby '3.0.0', 'webpacker', '~> 5.0'

package.json:
 "node": "15.14.0", "yarn": "1.22.15", "bootstrap": "4.5.0"

所以引导程序按预期用于开发而不是用于生产(heroku)

简而言之:区别在于开发和生产环境中节点和纱线的版本。 Heroku 如果你没有在 package.json 中设置它们,则使用默认版本。 对于我的案例 heroku 比我当地的要低一点。

我已将 json 的下一部分添加到 package.json 和 heroku 中,并在部署后对其进行设置。 就这样。

 "engines": {
    "node": "15.14.0",
    "yarn": "1.22.15"
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM