无法为 rails 4 设置标题
Unable to set title for rails 4
我一直在与 rails 一起学习 ruby 的个人项目,一切进展顺利。我已经开始过渡到完善和部署,并为您所在网站的哪个部分配置标题。我在 http://tinyurl.com/jzqmuw2 尝试了接受的解决方案,但我的标题仍然默认为我的项目名称干净。我已经查看了其他一些解决方案,其中一些还可以,但我不明白为什么这不起作用。
我在测试时在 ec2 micro t2 上使用 JRuby 9.0.4.0 (2.2.2) 和 openjdk 8。
相关代码:
${root}/homepage/index.html.erb
<!DOCTYPE html>
<head>
<title>
<%- title "BleuEngine" %>
</title>
</head>
<body>
<h1>BleuEngine</h1>
<p>Website for BleuEngine</p>
</body>
${root}/app/helper/application_helper.rb
module ApplicationHelper
# Setting titles for each page
def title(page_title)
content_for(:title) { page_title }
end
end
${root}/app/views/layouts/application.html.erb
<!DOCTYPE html>
<html>
<head>
<title><%= content_for?(:title) ? content_for?(:title) : "BleuEngine" %></title>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
<%= csrf_meta_tags %>
</head>
<body>
<%= yield %>
</body>
</html>
编辑: Layouts.html 实际上是应用程序。html.erb。固定
将您的 ${root}/homepage/index.html.erb 视图更改为:
<%- title "Whatever title you want to appear on this page" %>
<h1>BleuEngine</h1>
<p>Website for BleuEngine</p>
您的视图中不需要 <head>
内容,因为它应该在您的布局文件中。此外,您不需要 <body>
标签,因为您的视图插入在布局文件中 <%= yield %>
行的 body 标签之间。
最后,将标题行添加到布局文件 ${root}/app/views/layouts/application.html.erb 的 Head 部分以呈现标题。
<title><%= content_for?(:title) ? yield(:title) : "BleuEngine" %></title>
content_for?(:title)
return 是否有内容的布尔值。
它不是 return 实际内容。 yield(:title)
这样做。
改变
<title><%= content_for?(:title) ? content_for?(:title) : "BleuEngine" %></title>
到
<title><%= content_for?(:title) ? yield(:title) : "BleuEngine" %></title>
我一直在与 rails 一起学习 ruby 的个人项目,一切进展顺利。我已经开始过渡到完善和部署,并为您所在网站的哪个部分配置标题。我在 http://tinyurl.com/jzqmuw2 尝试了接受的解决方案,但我的标题仍然默认为我的项目名称干净。我已经查看了其他一些解决方案,其中一些还可以,但我不明白为什么这不起作用。
我在测试时在 ec2 micro t2 上使用 JRuby 9.0.4.0 (2.2.2) 和 openjdk 8。
相关代码:
${root}/homepage/index.html.erb
<!DOCTYPE html>
<head>
<title>
<%- title "BleuEngine" %>
</title>
</head>
<body>
<h1>BleuEngine</h1>
<p>Website for BleuEngine</p>
</body>
${root}/app/helper/application_helper.rb
module ApplicationHelper
# Setting titles for each page
def title(page_title)
content_for(:title) { page_title }
end
end
${root}/app/views/layouts/application.html.erb
<!DOCTYPE html>
<html>
<head>
<title><%= content_for?(:title) ? content_for?(:title) : "BleuEngine" %></title>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
<%= csrf_meta_tags %>
</head>
<body>
<%= yield %>
</body>
</html>
编辑: Layouts.html 实际上是应用程序。html.erb。固定
将您的 ${root}/homepage/index.html.erb 视图更改为:
<%- title "Whatever title you want to appear on this page" %>
<h1>BleuEngine</h1>
<p>Website for BleuEngine</p>
您的视图中不需要 <head>
内容,因为它应该在您的布局文件中。此外,您不需要 <body>
标签,因为您的视图插入在布局文件中 <%= yield %>
行的 body 标签之间。
最后,将标题行添加到布局文件 ${root}/app/views/layouts/application.html.erb 的 Head 部分以呈现标题。
<title><%= content_for?(:title) ? yield(:title) : "BleuEngine" %></title>
content_for?(:title)
return 是否有内容的布尔值。
它不是 return 实际内容。 yield(:title)
这样做。
改变
<title><%= content_for?(:title) ? content_for?(:title) : "BleuEngine" %></title>
到
<title><%= content_for?(:title) ? yield(:title) : "BleuEngine" %></title>