Kev*_*ark 36 ruby-on-rails heroku bootstrap-sass ruby-on-rails-4
我已经向Heroku部署了一个应用程序,但有一个问题似乎无法解决.app via的CSS Bootstrap-sass没有加载,因此我有一个非样式的应用程序.目前,这只是静态页面的集合.
我在README https://github.com/thomas-mcdonald/bootstrap-sass中只执行了一步.我无法弄清楚的步骤很可能是我的问题如下.由于Rails中的更改会阻止在供应商和库中编译图像,因此您需要将以下行添加到application.rb:
config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif)
Run Code Online (Sandbox Code Playgroud)
由于我仍然是编程的新手,第一个问题是我不知道在application.rb文件中何处以及如何添加它.如果有人能帮我告诉我如何以及在何处正确添加上述代码,我将不胜感激.
第二个问题可能与我使用的宝石有关,但是当我创建应用程序时,sass-rails gem安装了〜> 4.0.0.beta1.根据README,使用的版本是3.2.由于这也可能是一个问题,我已经包含了gem文件,任何人都可以确定这是我的问题的根本原因.
提前感谢您提供的任何帮助.
编辑:添加我在第一次尝试时采取的步骤,导致样式在我的本地主机上正常工作,但一旦代码部署到heroku就没有.
在第二次尝试时,我在主页上添加了一个导航栏(如果这对任何人都有影响)并再次执行步骤7和8,但在执行这些步骤之前,我运行了以下代码行.
RAILS_ENV=production bundle exec rake assets:precompile
Run Code Online (Sandbox Code Playgroud)
我仍然最终得到了一个在我的本地主机上具有正确风格的网站,但没有样式在Heroku上工作.正如我在上一篇文章中所提到的,有一行代码需要添加到我没有遵循的application.rb文件中,因为我对如何正确地将代码行添加到文件中缺乏了解.
的Gemfile:
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'
Run Code Online (Sandbox Code Playgroud)
小智 70
我刚才(2013年6月13日)得到了Heroku开发者的回答,他们的支持引导我跨过障碍.这就是我在我的Heroku应用程序中使用localhost获取我的css显示的方法.
"你需要做的就是打开生产中的资产服务并将logger设置为stdout以使Rails4在Heroku上工作.我们目前正在努力平滑Rails 4应用程序的部署过程,但与此同时,你可以改变代码中的那些行,你不需要那些宝石." (感谢布雷特和尼尔的好消息)
在/ config/environments/production中.组:
config.cache_classes = true
config.serve_static_files = true
config.assets.compile = true
config.assets.digest = true
Run Code Online (Sandbox Code Playgroud)
我不知道记录器中的stdout因此无法检查.
做一个git添加.和git提交.
确保/config/database.yml具有:
production:
adapter: postgresql
encoding: unicode
database: Your_appname_production
Run Code Online (Sandbox Code Playgroud)
您将需要以下env命令的此信息.
确保你的Gemfile中有生产中的宝石'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
Run Code Online (Sandbox Code Playgroud)
其中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
Run Code Online (Sandbox Code Playgroud)
它在bundle install和Heroku中出错.
不知道这是否有帮助,但我也增加了生产
Bundler.require(*Rails.groups(assets: %w(development test production)))
Run Code Online (Sandbox Code Playgroud)
不记得我在哪里看到了这个建议.
HTH Arel
我能够通过将这两个宝石添加到我的应用程序来解决这个问题
group :production do
gem 'rails_log_stdout', github: 'heroku/rails_log_stdout'
gem 'rails3_serve_static_assets', github: 'heroku/rails3_serve_static_assets'
end
Run Code Online (Sandbox Code Playgroud)
添加,运行bundle install然后推送到heroku.
你的风格应该开始加载.
| 归档时间: |
|
| 查看次数: |
28110 次 |
| 最近记录: |