【问题标题】:Ruby On Rails: How can I create a route to the public/index.html static file?Ruby On Rails:如何创建到 public/index.html 静态文件的路由?
【发布时间】:2023-03-25 08:28:01
【问题描述】:

我觉得这应该很容易,虽然我对 Rails 很陌生,但我正在努力弄清楚如何创建映射到公用文件夹中的静态 index.html 文件的路由。每当有人访问 URL“http://myapp.com/directory”时,我希望它路由到公用文件夹中的 index.html 文件,但我不知道如何在路由中构造该路由。 rb.

非常感谢您的智慧!

【问题讨论】:

  • 这听起来确实是一个奇怪的要求。参考您在 U-DONs 答案中的评论,您为什么不告诉我们您想这样做的原因。你最终想要达到什么目标?您说您是 Rails 新手 - 所以请帮助我们帮助您找到一个好的解决方案,而不仅仅是可行的解决方案。

标签: ruby-on-rails


【解决方案1】:

在你的路线中,输入match "/directory" => redirect("/")

【讨论】:

  • 它是否只适用于redirect("/")?抱歉,目前手头没有测试环境。
  • 对不起,这确实有效,但仅限于本地。当我推送到 heroku 时,它会因“页面不存在错误”而崩溃
【解决方案2】:

你会想跑:

rails generate controller directory index

这应该创建“app/views/directory/index.html.erb”。只需将 index.html 中的所有内容复制到该 index.html.erb 文件并删除 index.html 文件(或更改其名称,无论如何)。在你的 routes.rb 中,只需写:

match "/directory" => directory#index

之后再次运行您的服务器。你不能路由到 public/index.html;如果您保留该文件,您的根 URL 将自动抓取该文件并呈现它。

【讨论】:

  • 谢谢,U-DON!如果根 URL 抓取该文件,我没问题,但我也希望 myapp.com/directory URL 也抓取该文件。有没有办法做到这一点?我知道这是一个奇怪的问题,但我想这样做是有原因的。再次感谢!
猜你喜欢
  • 2013-04-27
  • 1970-01-01
  • 1970-01-01
  • 2014-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多