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

Heroku static site not loading the page data when switching to new pages

本文关键字:加载 数据 新页面 站点 静态 Heroku      更新时间:2023-09-26

在Heroku上创建一个简单的静态站点:https://devcenter.heroku.com/articles/static-sites-ruby.

当我在浏览器中本地打开页面时,一切正常。我点击链接,然后进入我想要的页面。但是当我运行rackup (localhost:9292)或将其推送到heroku时,主页加载,然后如果我尝试去page2.html之类的东西,url加载,但浏览器仍然显示来自主页的数据。

我创建了一个简单的例子: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)
  ]
}

你到底想做什么?您是否希望创建一个可以在Heroku上托管的Rails项目?如果是,有一个更好的,更简单的方法,从你的本地机器使用一个由heroku创建的gem。如果你需要更多关于在heroku上推广/托管应用的帮助,请告诉我。

假设您已经在本地机器上安装了rails,如果没有,您可以使用此链接安装rails1. 从终端或命令窗口创建一个新的rails应用程序。使用rails new name-of-app创建一个新的rails应用程序2. 将目录更改为您的name-of-app文件夹,并确保rails服务器运行,您可以预览应用程序。从当前的name-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(确保你从应用程序名称目录中执行此操作)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
  • 运行bundle install
  • 在name-of-app/app/controllers文件夹中创建一个欢迎控制器类欢迎控制器<程序控制器def指数>

    结束结束检查在这里在配置/路由中,welcome#index的根路由。rb root 'welcome#index'见此处

  • 在你的app/views/文件夹下创建一个欢迎文件夹,并在文件夹中创建一个index.html.erb文件,并在其中填写

    welcome to my app

  • 预览你的应用程序运行rails server,确保它进入索引页。
  • 通过重复步骤3将代码提交到git。
  • 通过运行heroku create创建一个heroku应用程序(确保您在本地机器上安装了heroku toolbet,并使用heroku login登录)
  • 运行git push heroku master将代码项目部署到heroku提示:要更改应用程序的名称,请运行heroku rename newnameofyourapp
  • 我希望这对你有帮助。