Zaimplementowałem kanoniczny adres URL strony głównej w następujący sposób: dodałem tę linię
<link rel="canonical" href="https://example.com/">
dodałem tę linię na index.html.erb
w header
Sekcja. Działa dobrze.
Teraz mam dynamiczne trasy generujące linię w następujący sposób:
<a href "<%= search_equipments_path(:category_id => category.id) %>">
Próbowałem:
<a rel="canonical" href="<%= search_equipments_path(:category_id => category.slug) %>">
Ale nie działa.
Odpowiedzi:
2 dla odpowiedzi № 1W ten sposób możemy ustawić znaczniki kanoniczne w szynach. Ten kod rails wygeneruje znaczniki kanoniczne dla pełnego bieżącego adresu URL. Dodaj to w układzie w sekcji nagłówka HTML.
<link rel="canonical" href="<%= url_for(:only_path => false) %>" />
Mam nadzieję że to pomoże.
1 dla odpowiedzi nr 2
Możesz użyć content_for
aby utworzyć dynamiczną porcję w sekcji nagłówka układu:
# app/views/layouts/application.html.erb
<!DOCTYPE html>
<html>
<head>
# ...
<% if content_for?(:canonical_url) -%>
<%= tag :link, href: content_for(:canonical_url), rel: "canonical" %>
<% end -%>
</head>
</html>
Następnie możesz podać canonical_url
w twoich poglądach:
<%= provide(:canonical_url, search_equipments_url(category.slug)) %>