gpt4 book ai didi

ruby-on-rails - 无法使用 Rails 4 和 bootstrap-sass gem 在 Heroku 上使用 CSS

转载 作者:行者123 更新时间:2023-12-03 07:42:53 25 4
gpt4 key购买 nike

我已经将一个应用程序部署到 Heroku,但有一个问题我似乎无法解决。通过 Bootstrap-sass 的应用程序的 CSS 不会加载,因此我有一个未样式化的应用程序。目前这只是静态页面的集合。

我已遵循自述文件 https://github.com/thomas-mcdonald/bootstrap-sass 中除一个步骤之外的所有步骤我无法弄清楚并且很可能是我的问题的步骤如下。由于 Rails 中的更改阻止了在供应商和 lib 中编译图像,您需要将以下行添加到您的 application.rb:

config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif)

由于我对编程还很陌生,所以第一个问题是我不知道在 application.rb 文件中的何处以及如何添加它。如果有人能帮助我展示如何以及在何处正确添加上述代码行,我将不胜感激。

第二个问题可能与我正在使用的 gems 有关,但是当我创建应用程序时,sass-rails gem 是通过 ~> 4.0.0.beta1 安装的。根据 README,使用的版本是 3.2。由于这也可能是一个问题,因此我包含了 gem 文件,以防有人确定这是我的问题的根本原因。

预先感谢您提供的任何帮助。

编辑:添加我第一次尝试时采取的步骤,这些步骤导致样式在我的本地主机上正常工作,但在代码部署到heroku后却无法正常工作。

  1. 创建了一个新的 Rails 4 应用(下面是 gem 文件)
  2. 添加了下面 gem 文件中列出的 bootstrap-sass gem
  3. 将 PG gem 添加到生产组中的 gem 文件中,并将 SQLite3 移至开发和测试(运行捆绑安装 - 没有按照步骤 2 和 3 进行生产)
  4. 为静态主页创建了页面 Controller
  5. 在主页的英雄单元中添加了 h1,只是为了查看样式是否有效
  6. 添加了 styles.css.scss 文件并包含 @import 'bootstrap';到样式表
  7. 创建了 git 存储库,运行我的初始提交并将代码推送到 git
  8. 创建了heroku应用程序并将master推送到heroku

在第二次尝试中,我在主页上添加了一个导航栏(如果这对任何人都有影响的话),并再次执行步骤 7 和 8,但在执行这些步骤之前,我运行了以下代码行。

RAILS_ENV=production bundle exec rake assets:precompile

我最终仍然得到了一个在本地主机上具有正确样式的网站,但在 Heroku 上没有任何样式可用。正如我在上面的原始文章中指出的,有一行代码需要添加到 application.rb 文件中,由于我不了解如何正确地将代码行添加到文件中,所以我没有遵循该代码行。

gem 文件:

source 'https://rubygems.org'

ruby "2.0.0"

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.0.0.beta1'

group :production do
gem 'pg'
end

group :development, :test do
gem 'sqlite3'
end

# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails', '~> 4.0.0.beta1'
gem 'coffee-rails', '~> 4.0.0.beta1'

gem 'bootstrap-sass', '~> 2.3.1.1'

# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby

gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'

# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'

# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 1.0.1'

# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'

# Use unicorn as the app server
# gem 'unicorn'

# Deploy with Capistrano
# gem 'capistrano', group: :development

# To use debugger
# gem 'debugger'

最佳答案

我刚刚(2013 年 6 月 13 日)从 Heroku 开发人员那里得到了这个答案,他们的支持引导我跨越了障碍。这就是我在 Heroku 应用程序中从本地主机获取 css 显示的方式。

“您需要做的就是在生产中打开 Assets 服务并将记录器设置为标准输出,以使 Rails4 在 Heroku 上运行。我们目前正在努力平滑 Rails 4 应用程序的部署过程,但与此同时,您只需更改代码中的这些行,您就不需要这些 gem 了。” (感谢布雷特和尼尔好消息)

在/config/environments/products 中。设置:

config.cache_classes = true
config.serve_static_files = true
config.assets.compile = true
config.assets.digest = true

我不知道记录器中的标准输出,因此无法检查。

执行 git add 。和 git 提交。

确保/config/database.yml 具有:

production:
adapter: postgresql
encoding: unicode
database: Your_appname_production

您将需要此信息来执行下面的 env 命令。

确保您的 Gemfile 中有正在生产的 gem 'pg'再次进行 git 提交。

在应用程序的终端中运行此命令一行:

env RAILS_ENV=production DATABASE_URL=postgresql://user:pass@127.0.0.1/Your_app_name_production bundle exec rake assets:precompile 2>&1

其中 DATABASE_URL=postgresql 与 yml 文件中的生产适配器相同并且指定了 Your_app_name_Production,因为 Heroku 似乎只运行生产。

有人建议我不要这样做,但我不需要:

group :production do
gem 'rails_log_stdout', github: 'heroku/rails_log_stdout'
gem 'rails3_serve_static_assets', github: 'heroku/rails3_serve_static_assets'
end

在捆绑安装和 Heroku 中出错。

不知道这是否有帮助,但我还添加了生产

Bundler.require(*Rails.groups(assets: %w(development test production)))

不记得在哪里看到过这个建议。

HTH阿雷尔

关于ruby-on-rails - 无法使用 Rails 4 和 bootstrap-sass gem 在 Heroku 上使用 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16271696/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com