我最近创建了一个heroku应用程序,用于我一直在努力的现有rails应用程序。我只有一个html文件,我希望在我的浏览器上显示。这个文件从我的数据库中获取新闻故事(sqlite3--从技术上讲应该从开发的角度来看。我已经得到它来使用railsstutorial,我根本没有配置postgres),以及它们对应的图像,并将它们吐出到页面。这在localhost上完美运行,但是当我使用' heroku open'进行部署时,我看到的是一个空白的白页,其中包含我在页面顶部添加的标题标记:'热门故事来自BBC'。这就好像应用程序根本没有读取eRB标签一样。这是我的索引视图html.erb文件的代码:
<h1> Top stories from BBC <h1>
<% @stories.each do |story| %>
<% if story.image.nil? %>
<% # do nothing %>
<% else %>
<div>
<h3><%= story.name %></h3>
<p><%= story.summary %></p>
<a href = "<%= story.url %>" >
<img src="<%= story.image %>" />
</a>
</div>
<% end %>
<% end %>
这是我的宝石文件:
source 'https://rubygems.org'
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.0.8'
gem 'feedjira'
gem 'mechanize'
gem 'nokogiri'
# Use sqlite3 as the database for Active Record
group :development, :test do
gem 'sqlite3', '1.3.8'
gem 'rspec-rails', '2.13.1'
end
group :test do
gem 'selenium-webdriver', '2.35.1'
gem 'capybara', '2.1.0'
end
# Use SCSS for stylesheets
gem 'sass-rails', '~> 4.0.2'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails', '~> 4.0.0'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby
# Use jquery as the JavaScript library
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.2'
group :doc do
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', require: false
end
group :production do
gem 'pg', '0.15.1'
gem 'rails_12factor', '0.0.2'
end
# Use ActiveModel has_secure_password
# gem 'bcrypt', '~> 3.1.7'
# Use unicorn as the app server
# gem 'unicorn'
# Use Capistrano for deployment
# gem 'capistrano', group: :development
# Use debugger
# gem 'debugger', group: [:development, :test]
我一直在使用heroku和git命令,例如:
即使以多种不同的组合尝试上述内容,似乎没有任何效果。我很感激你们可以提供的任何反馈,以便我如何让我的索引页面在Heroku上正确呈现。它完全适用于本地主机。
谢谢,非常感谢您的帮助!
答案 0 :(得分:1)
您已将代码推送到Heroku,但您的Heroku数据库为空。如果您想在Heroku上使用本地数据库中的数据,只需按下即可!
heroku pg:push mylocaldb HEROKU_POSTGRESQL_MAGENTA --app sushi
其中:
mylocaldb
是本地数据库的名称
HEROKU_POSTGRESQL_MAGENTA
是您的heroku数据库的名称(从heroku pg:info -a myapp
找到)
重要:Heroku使用postgres,所以你也应该在本地使用postgres。此处说明的许多命令都要求您在机器上安装postgres。
请务必阅读Heroku提供的非常有用的帮助页面:https://devcenter.heroku.com/articles/heroku-postgresql#pg-push-and-pg-pull