Выборка дубликатов страниц с Rails 5.2 и Turbolinks, Webpacker и Angular 6

У меня есть страница контактов в Rails, которая запускает приложение Angular 6,

<% content_for :content_title, "Contact Us" %>

<% content_for :metatags do %>
  <!-- This is to get rid of "Zone already loaded error" from a combination of Angular and Turbolinks' doing-->
  <meta name="turbolinks-visit-control" content="reload">
<% end %>

<% content_for :scripts do %>
  <%= javascript_pack_tag 'contact',
        "data-turbolinks-track": "reload" %>
<% end %>

<%= render "pages/layout" do %>
  <% content_for :title, "Contact Us" %>
  <div class="divider"></div>

  <div class="container" style="max-width: 800px;">
    <div class="section">
      <div class="card-panel">
        <contact>Loading...</contact>
      </div>
    </div>
  </div>
<% end %>

Все работает, как и ожидалось на поверхности, но я заметил следующее поведение,

  • Переходя с других страниц, на которых не запускаются приложения Angular (например, домой), все работает как положено,
  • Посадка напрямую на /contact (набрав localhost:3000/contact в браузере и нажав ввод) работает как положено,

Тем не мение,

  • Переход к / контакту с какой-либо другой страницы приводит к двум запросам к / контакту,

  • Переход от /contact, скажем, к корневому пути /, приводит к двум запросам к /,

Последующие запросы снова в порядке.

Я уверен, что это как-то связано с турболинками, но я не понимаю этого достаточно, чтобы точно определить, что здесь происходит.

Добавление data-turbolinks="false" решает проблему дублирующих запросов к /contact, но повторяющиеся запросы в результате перехода от / contact остаются.

<%= link_to "Contact", contact_path, data: { turbolinks: false } %>

Дополнительное наблюдение, касающееся заголовка "Принять". В обычных одиночных запросах заголовок "Принять"

"accept": text/html, application/xhtml+xml

С повторяющимися запросами первый заголовок

"accept": text/html, application/xhtml+xml

И второй заголовок,

"accept": text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Если кто-нибудь сможет просветить меня о том, что здесь происходит, я был бы очень признателен. Такое поведение наблюдается как в Chrome, так и в Safari, а также в производственной сборке на Heroku, поэтому оно не ограничивается настройкой разработки.

0 ответов

Другие вопросы по тегам