#javascript #ruby #ruby-on-rails-3
#javascript #ruby #ruby-on-rails-3
Вопрос:
Я разрабатываю приложение с Rails 3, одним из требований являются уникальные мета-описания и ключевые слова на каждой странице для улучшения SEO.
Клиенту необходимо, чтобы это делалось автоматически. Как вы это делаете? Лучше сделать это с помощью Rails, Ruby или напрямую с помощью Javascript?
Спасибо.
Ответ №1:
Делайте это в Rails, а не через javascript. Поисковые системы не будут выполнять ваш javascript.
Что я обычно делаю, так это пишу мета-помощник, который я просто вставляю в свой ApplicationHelper, который выглядит следующим образом:
def meta(field = nil, list = [])
field = field.to_s
@meta ||= {
'robots' => ['all'],
'copyright' => ['My Copyright'],
'content-language' => ['en'],
'title' => [],
'keywords' => []
}
if field.present?
@meta[field] ||= []
case list.class
when Array then
@meta[field] = list
when String then
@meta[field] = [list]
else
@meta[field] = [list]
end
case field
when 'description' then
content = truncate(strip_tags(h(@meta[field].join(', '))), :length => 255)
else
content = @meta[field].join(', ')
end
return raw(%(<meta #{att}="#{h(field)}" content="#{h(content)}"/>))
else
tags = ''
@meta.each do |field, list|
tags = meta(field) "n"
end
return tags.rstrip
end
end
Вы можете просто установить мета-теги в своих представлениях, добавив в них вызов meta(). Итак, в articles/show.html.erb
вы могли бы добавить это в начало вашего представления:
<% meta(:title, @article.title) %>
И в ваших макетах вы добавляете его без каких-либо параметров, поэтому он будет выдавать мета-теги.
<%= meta %>
Или пусть он выводит отдельный тег:
<%= meta(:title) %>
Готов поспорить, что есть более элегантные решения. Но если вы искали что-то уже реализованное в Rails, вам не повезло.
Комментарии:
1. Спасибо, я использую ваше решение с некоторыми изменениями. Кстати, я не могу заставить это работать
<%= meta %>
2. Итак, я мог бы сделать что-то вроде
<% meta(:description, 'My description' %>
, если бы я хотел добавить тег meta description?3. Для SEO тег description является наиболее важным.
Ответ №2:
Комментарии:
1. Эти драгоценные камни не создают ключевые слова автоматически.
2. Вы можете построить поверх них — проанализировать информацию из моделей, отображаемых на странице (или, если это индекс, использовать некоторую общую информацию) и использовать один из этих драгоценных камней, чтобы помочь сгенерировать теги.
3. Я использую решение @fx_ с вашими советами для генерации ключевых слов. Я предпочитаю создавать сам. Спасибо.