/ / Jak uzyskać kanoniczny adres URL dla dynamicznie generowanych adresów URL na szynach? - rubin-na-szynie, kanoniczny-link

Jak uzyskać kanoniczny adres URL dla dynamicznie generowanych adresów URL na szynach? - ruby-on-rails, link kanoniczny

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 № 1

W 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)) %>