Rails:如何将内容放入标题中

问题描述 投票:0回答:2

在我的 Rails 应用程序中,我包含了 OneSignal,它需要将以下链接放置在文档的头部:

<link href='/manifest.json' rel='manifest'>

不幸的是,对于 Rails,我无法将此链接放在那里,因为整个布局都会在主体内呈现。

虽然这...

$(document).ready(function(){
    $("head").append("<link href='/manifest.json' rel='manifest'>");
});

似乎在开发模式下工作,但在生产模式下不起作用。

如何将此链接添加到文档的头部部分?

ruby-on-rails dom hyperlink ruby-on-rails-5 head
2个回答
4
投票

如果您不想进行站点范围内的更改(将脚本添加到站点上的每个页面),您可以选择要放置它的页面并添加到 .html.erb 文件中

<% content_for :header do %>
    <%= javascript_include_tag "script.js" %>
<% end %>

javascript_include_tag
将允许您将内容从控制器发送到标头,如果 script.js 位于您的 app/assets/javascript 目录中,则会将其添加到标头。

另一种选择是创建一个特定布局,并让需要脚本的页面使用该布局,通过在控制器中调用它,如下所示:

def users_index
@user= User.find(params[:id])
layout: users_index layout 
end

这将从应用程序/视图/布局中加载

users_index_layout.html.erb
文件...如果存在,如果不存在则大声抱怨。


0
投票

您可以在

<link href='/manifest.json' rel='manifest'>
中添加
app/views/layouts/application.html.erb

© www.soinside.com 2019 - 2024. All rights reserved.