Rails 6.1 如何将文件渲染到页面模板中

Posted

技术标签:

【中文标题】Rails 6.1 如何将文件渲染到页面模板中【英文标题】:Rails 6.1 How to Render A FIle Into A Page Template 【发布时间】:2021-07-28 04:29:50 【问题描述】:

这曾经有效 -

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 %>

有人知道如何进行这项工作吗?

谢谢

【问题讨论】:

【参考方案1】:

试试这个:

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

如果 HTML 标签被转义,则使用&lt;%== 或在render 结果上添加.html_safe

【讨论】:

我也试过了,得到同样的错误 - 渲染文件:应该给出文件的绝对路径。

以上是关于Rails 6.1 如何将文件渲染到页面模板中的主要内容,如果未能解决你的问题,请参考以下文章

如何一个接一个地渲染多个html文件?

Django框架之模板

Rails 如何转义和显示渲染视图的内容

如何将 Fitnesse 页面添加到版本控制?

在 Rails 中渲染缓存页面

Node.js_express_服务器渲染页面 ejs