2014-08-31 59 views
0

我有一個關於Ruby on Rails,ActionView,Application.html.erb和使用HTML頭標籤的簡單問題。ActionView,Application.html.erb和HTML頭標記

我知道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> 

表示上述代碼顯示在我的所有網頁上。

現在,我一直在閱讀關於搜索引擎優化,它建議爲每個網頁使用單獨的描述元標籤,告訴搜索引擎一個網頁是關於什麼。我對你的問題是

你允許自定義軌道個人頁面,如

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

,包括內他們HTML head標籤?

我一直在使用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 2014-09-01 15:19:59

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

雖然此鏈接可能回答此問題,但最好在此處包含答案的重要部分並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 – 2014-08-31 16:02:21

+0

@SørenHoltenHansen,但是如果gem將被刪除並且鏈接將會不正確,那麼這個答案也是不正確的,無論我給它添加什麼解釋都沒有關係;) – IS04 2014-08-31 16:31:17

+0

這很重要。質量問題和質量答案是幾乎所有其他Q/A站點設置Stack Overflow的原因。 – 2014-08-31 16:44:08