2

这曾经有效 -

render file: "public/404.html", status: :not_found

更新到 Rails 6.1 后,它不再出现此错误 -

render file: should be given the absolute path to a file. 'public/404.html' was given instead

绝对路径的问题是没有将文件正确插入我的页面......所以我决定了 -

render html: Rails.public_path.join('404.html.erb').read.html_safe, status: :not_found, layout: 'application'

这行得通,但是......它不会让我使用任何这样的 Rails ERB 代码 -

<% content_for :head do %>
  <title>404 Error - Not Found</title>
  <meta name="description" content="404 Error - Not Found">
<% end %>

有人对如何使这项工作有任何想法吗?

谢谢

4

1 回答 1

0

尝试这个:

render file: Rails.root.join("public/404.html"), status: :not_found

如果 HTML 标签被转义,则使用或<%==添加结果。.html_saferender

于 2021-11-21T01:10:56.493 回答