Rails: 如何将内容放入页眉
Rails: How to put stuff in header
在我的 Rails 应用程序中,我包含了 OneSignal,它需要将以下 link 放在文档的头部:
<link href='/manifest.json' rel='manifest'>
不幸的是 Rails 我不能把这个 link 放在那里,因为整个布局都在 body 内呈现。
虽然这...
$(document).ready(function(){
$("head").append("<link href='/manifest.json' rel='manifest'>");
});
似乎在开发模式下有效,在生产模式下无效。
如何将此 link 添加到文档的开头部分?
您可以在 app/views/layouts/application.html.erb
中添加 <link href='/manifest.json' rel='manifest'>
。
如果您不想在站点范围内进行更改(将脚本添加到站点上的每个页面),您可以选择要放置它的页面并将其添加到 .htmlerb 文件中
<%= content_for :header %>
<%= javascript_include_tag "script.js" %>
<%= end %>
javascript_include_tag
将允许您将内容从控制器发送到 header,如果 script.js 在您的 app/assets/javascript 目录中,它将被添加到 header。
另一种选择是制作 specific layout 并让需要脚本的页面使用该布局,方法是在控制器中调用它,如下所示:
def users_index
@user= User.find(params[:id])
layout: users_index layout
end
这将从 app/views/layouts 加载 users_index_layout.html.erb
文件...如果它存在,如果不存在则大声抱怨。
在我的 Rails 应用程序中,我包含了 OneSignal,它需要将以下 link 放在文档的头部:
<link href='/manifest.json' rel='manifest'>
不幸的是 Rails 我不能把这个 link 放在那里,因为整个布局都在 body 内呈现。
虽然这...
$(document).ready(function(){
$("head").append("<link href='/manifest.json' rel='manifest'>");
});
似乎在开发模式下有效,在生产模式下无效。
如何将此 link 添加到文档的开头部分?
您可以在 app/views/layouts/application.html.erb
中添加 <link href='/manifest.json' rel='manifest'>
。
如果您不想在站点范围内进行更改(将脚本添加到站点上的每个页面),您可以选择要放置它的页面并将其添加到 .htmlerb 文件中
<%= content_for :header %>
<%= javascript_include_tag "script.js" %>
<%= end %>
javascript_include_tag
将允许您将内容从控制器发送到 header,如果 script.js 在您的 app/assets/javascript 目录中,它将被添加到 header。
另一种选择是制作 specific layout 并让需要脚本的页面使用该布局,方法是在控制器中调用它,如下所示:
def users_index
@user= User.find(params[:id])
layout: users_index layout
end
这将从 app/views/layouts 加载 users_index_layout.html.erb
文件...如果它存在,如果不存在则大声抱怨。