Heroku静态站点在切换到新页面时不加载页面数据

时间:2016-09-10 22:44:25

标签: javascript html ruby-on-rails heroku static

使用以下方法在Heroku上创建简单的静态网站:https://devcenter.heroku.com/articles/static-sites-ruby

当我在浏览器中本地打开页面时,一切正常。我点击链接,然后登陆我想要的页面。 但是当我运行rackup(localhost:9292)或将其推送到heroku时,主页会加载,然后如果我尝试转到类似page2.html的内容,则会加载网址,但浏览器仍会显示来自主页。

我重新创建了一个简单的示例:https://peaceful-atoll-24169.herokuapp.com。我有一个带有Hello的索引页面。它应链接到包含Yo的页面。它会转到页面,但在您单击链接时不会更改页面内容。

知道可能会发生什么吗?我觉得这可能是因为我的config.ru文件?这是它的内容。

use Rack::Static,
  :urls => ["/images", "/js", "/css"],
  :root => "public"

run lambda { |env|
  [
    200,
    {
      'Content-Type'  => 'text/html',
      'Cache-Control' => 'public, max-age=86400'
    },
    File.open('public/index.html', File::RDONLY)
  ]
}

2 个答案:

答案 0 :(得分:0)

你到底想做什么?你想创建一个你可以在Heroku上托管的Rails项目吗? 如果是,使用heroku创建的gem可以更好地从本地计算机上执行此操作。如果您需要有关在heroku上推送/托管应用程序的步骤的更多帮助,请告诉我们。

答案 1 :(得分:0)

这假设您已在本地计算机上安装了rails,否则您可以使用此link安装rails  1.从终端或命令窗口创建新的rails应用程序。使用rails new name-of-app创建新的rails应用  2.将目录更改为您的app-of-app文件夹,并确保rails服务器运行并且您可以预览该应用程序。通过从当前app-of-app文件夹运行rails server来预览应用。您可以通过MacOS上的Command + C或PC上的Ctrl + C停止服务器运行  3.初始化应用程序文件的git存储库,运行git init然后运行git add -A然后运行git commit -m "Initial commit of app",然后运行git push(确保从app-of-app目录执行此操作)  4.组织你的Gemfile以包含它,从默认数据库中删除sqlite以在开发环境中使用。你可以在我的github repo

中看到这个样本
group :development, :test do
  # Use sqlite3 as the database for Active Record
  gem 'sqlite3'
  # Call 'byebug' anywhere in the code to stop execution and get a debugger console
  gem 'byebug', platform: :mri
end

group :production do
  gem 'pg'
  gem 'rails_12factor'

end
  1. 运行bundle install
  2. 在app-app / controllers文件夹中创建欢迎控制器 class WelcomeController< ApplicationController的   def index

    端 结束 检查here config / routes.rb中的welcome #index的根路由root 'welcome#index'请参阅here

  3. 在app / views /文件夹下创建一个欢迎文件夹,并在该文件夹中创建一个index.html.erb文件,并用

    欢迎使用我的应用

  4. 填写它
  5. 通过运行rails server预览您的应用,确保它转到索引页面。
  6. 重复步骤3,将代码提交给git。
  7. 运行heroku create创建一个heroku应用(确保您在本地计算机上安装了heroku toolbet并使用heroku login
  8. 登录
  9. 运行git push heroku master将代码项目部署到heroku 提示:要更改应用程序的名称,请运行heroku rename newnameofyourapp
  10. 我希望这会有所帮助。