【问题标题】:error 404 after removing public/index.html删除 public/index.html 后出现错误 404
【发布时间】:2012-11-23 14:49:09
【问题描述】:

我只想用 Ubuntu 12.04、Apache 和 PhusionPassenger 在我的新 VPS 服务器上测试一个简单的 rails 应用程序。

使用公共目录中的默认 index.html 文件一切正常。

但是,如果我删除此文件并尝试从视图目录中渲染文件,则会出现 404 错误。 在我的本地机器上一切正常...

我想,也许它与资产管道有关,所以我尝试了“rake assets:precompile”,但没有帮助。

编辑:我已经设置了正确的根路径,以及操作和方法。

【问题讨论】:

  • 您记得在您的routes.rb 文件中设置一个新的:root 吗?
  • 我没有其他路线。我刚刚创建了一个默认的 Rails 应用程序,并想测试网络服务器上的所有内容。我生成了一个控制器和一个模板,删除了 public/index.html 并更新了 routes.rb

标签: ruby-on-rails apache deployment


【解决方案1】:

也许你没有在你的应用程序中设置 root_path。你可以这样设置:root => "controller_name#action_name"

【讨论】:

    【解决方案2】:

    我找到了解决问题的方法:

    日志文件显示“application.css 未预编译”。

    而不是:rake assets:precompile 我使用了bundle exec rake assets:precompile,现在它可以正常工作了!

    【讨论】:

      【解决方案3】:

      index.html 文件是根 URL 的默认替代文件。

      所以当你删除它时,就没有处理根 url (/) 的路由了。

      要设置根 URL (/),这些路由中的任何一个都可以:

      root :to => 'controller#action'
      root => 'controller#action'
      get '/' => 'controller#action'
      

      【讨论】:

      • 我在 routes.rb 中的根 URL 是正确的。如果我在本地机器上运行 rails server 一切正常。只有在服务器上部署后我才会收到错误消息。如果我在服务器上有 public/index.html 它也可以工作......
      猜你喜欢
      • 2014-02-14
      • 2021-05-31
      • 2019-06-19
      • 2019-12-06
      • 1970-01-01
      • 1970-01-01
      • 2016-12-28
      • 2014-03-24
      • 2022-01-18
      相关资源
      最近更新 更多