Facebook Share OG Метатеги не работают с постоянной ссылкой - PullRequest
0 голосов
/ 07 апреля 2020

На домашней странице моего сайта у меня есть список элементов, опубликованных разными пользователями, а рядом с каждым элементом в списке есть кнопка «Поделиться» на Facebook, которая делится ссылкой на страницу профиля пользователя, который разместил этот элемент на список. URL-адрес страницы пользователя, на которую я ссылаюсь, может быть доступен с помощью «https://www.example.com/ <% = @ user.permalink%>», который отображается как https://www.example.com/username. Файл, содержащий код для этой веб-страницы, находится в app / views / users / show. html .erb. В верхней части файла show. html .erb я включил эти строки в метатеги

<% content_for :head do %>
  <meta property="og:url"           content="<%= "https://example.com" + user_profile_path(@user.permalink) %>" />
  <meta property="og:type"          content="website" />
  <meta property="og:title"         content="example user" />
  <meta property="og:description"   content="example <%= @user %> connected" />
  <meta property="og:image"         content="http://www.example.com/picture.png" />
<% end %>

Я протестировал вывод <% = "<a href="https://example.com" rel="nofollow noreferrer">https://example.com "+ user_profile_path (@ user.permalink)%> и он действительно отображает URL (https://www.example.com/username), который я хочу отобразить. В моем app / views / layouts / application. html .erb файле у меня в голове есть следующее

<head>
  <% if content_for?(:head) %>
    <%= yield(:head) %>
  <% end %>
</head>

У меня похожая ситуация в другой части моего кода, хотя эта кнопка общего доступа ДЕЛАЕТ Работа. URL-адрес этого можно получить с помощью «https://example.com/events/ <% = @ event.id%>», который отображает событие, подобное https://www.example.com/events/1. В верхней части этого файла у меня есть эти строки для мета-тегов

<% content_for :head do %>
  <meta property="og:url"           content="<%= "https://example.com" + event_path(@event) %>" />
  <meta property="og:type"          content="website" />
  <meta property="og:title"         content="<%= @event.name %>" />
  <meta property="og:description"   content="<%= @event.desc %>" />
  <meta property="og:image"         content="http://www.example.com/picture.png" />
<% end %>

Этот работает отлично, и, поскольку они по сути одинакового формата, я не уверен, почему первый не Работа. Любая помощь очень ценится, и если вам понадобится еще какой-нибудь код или информация, я буду рад предоставить ее, если вас попросят, спасибо!

...