2014-08-31 3 views
0

У меня есть простой вопрос относительно Ruby on Rails, ActionView, Application.html.erb и использования тегов заголовка HTML.ActionView, Application.html.erb и HTML head tags

Я знаю, что application.html.erb используется для отображения содержимого по всем страницам вашего сайта.

<head> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <meta name="description" content="My desciprtion."> 
    <meta name="robots" content="index,follow"> 
    <title><%= @title %></title> 
    <%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true, :cache => "cache/all" %> 
    <%= javascript_include_tag "application", :async => true, "data-turbolinks-track" => true, :cache => "cache/all" %> 
    <%= csrf_meta_tags %> 
</head> 

Это означает, что приведенный выше код отображается на всех моих веб-страницах.

Теперь я читал о SEO, и он предлагает использовать отдельные метатеги для каждой веб-страницы, чтобы сообщить поисковым системам, о какой странице. Мой вопрос к вам

Вы позволили настроить отдельные страницы в рельсах, как

page1.html.erb 
page2.html.erb 
page3.html.erb 

и включают в себя HTML голову тег внутри них?

Я работаю с Ruby on Rails в течение некоторого времени, но я никогда не видел тег заголовка внутри страницы просмотра.

Я не видел тег тела в этом отношении.

Я использовал

<% @title = "Page Title" %> 

объявить отдельные названия для страниц. Это будет эквивалент тега заголовка HTML.

Есть ли что-то подобное для объявления описания для каждой веб-страницы?

ответ

2

Вы можете изменить свой заголовок:

<head> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <%= yield :meta %> 
    <meta name="robots" content="index,follow"> 
    <title><%= yield :title %></title> 
    <%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true, :cache => "cache/all" %> 
    <%= javascript_include_tag "application", :async => true, "data-turbolinks-track" => true, :cache => "cache/all" %> 
    <%= csrf_meta_tags %> 
</head> 

Тогда в ваших взглядах вы можете сделать:

<% content_for :meta do %> 
    <meta name="description" content="blah"> 
<% end %> 

<% content_for :title, 'My title' %> 
+0

Спасибо, это мне помогло. – Johnson

0

вы могли бы использовать meta-tag перл:

<head> 
    ... 
    <%= display_meta_tags %> 
</head> 

как некоторые примеры:

set_meta_tags site: 'Site Title', title: 'Member Login' 
# <title>Site Title | Page Title</title> 

set_meta_tags description: "All text about keywords, other keywords" 
# <meta name="description" content="All text about keywords, other keywords" /> 

set_meta_tags canonical: "http://yoursite.com/canonical/url" 
# <link rel="canonical" href="http://yoursite.com/canonical/url" /> 

set_meta_tags :twitter => { 
    :card => "summary", 
    :site => "@username" 
} 
# <meta name="twitter:card" content="summary"/> 
# <meta name="twitter:site" content="@username"/> 

set_meta_tags :author => "Dmytro Shteflyuk" 
# <meta name="author" content="Dmytro Shteflyuk"/> 
+1

Хотя эта ссылка может ответить на вопрос, лучше включить основные части ответа здесь и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. –

+0

@ SørenHoltenHansen, но если gem будет удален и ссылка будет неправильной, этот ответ также будет неправильным, не имеет значения, какое объяснение я добавляю к нему;) – IS04

+0

Важно, какое объяснение вы добавляете к нему. Вопросы качества и ответы на качество - это то, что отличает Stack Overflow от практически любых других Q/A-сайтов. –