Обновление страницы автоматически из-за Turbolinks на рельсах - PullRequest
0 голосов
/ 25 апреля 2018

В моем приложении rails некоторые страницы обновляются автоматически без каких-либо видимых причин. В моей консоли у меня есть это сообщение:

turbolinks.self-2db6ec539b9190f75e1d477b305df53d12904d5cafdd47c7ffd91ba25cbec128.js? Body = 1: 7 Вы загружаете Turbolink из элемента внутри элемента. Это, вероятно, не то, что вы хотели сделать!

Вместо этого загрузите JavaScript-пакет вашего приложения внутри элемента. элементы в оцениваются при каждом изменении страницы.

Для получения дополнительной информации см .: https://github.com/turbolinks/turbolinks#working-with-script-elements

Подавить это предупреждение, добавив атрибут data-turbolinks-suppress-warning в: <script src="/assets/turbolinks.self-2db6ec539b9190f75e1d477b305df53d12904d5cafdd47c7ffd91ba25cbec128.js?body=1" data-turbolinks-track="reload"></script>

Когда я комментирую частичный заголовок в файле application.html.erb, сообщение об ошибке исчезает, но оно довольно простое

    <!DOCTYPE html>
    <html>
      <head>
        <title>Myleagueproject</title>
        <%= render "layouts/header" %>
        <%= csrf_meta_tags %>

        <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload' %>
        <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
      </head>

  <body>
    <% flash.each do |key, value| %>
        <div class="alert alert-<%= key %>"><%= value %></div>
    <% end %>
    <%= yield %>
  </body>
</html>

и мой заголовок:

<header>
  <nav class="navbar navbar-expand-md" style="background-color: black;">
    <% if player_signed_in? %>
        <div class="navbar-collapse collapse w-100 order-1 order-md-0 dual-collapse2">
            <ul class="navbar-nav mr-auto">
                <li class="nav-item">
                    <%= link_to root_path, class: 'header' do%>
                    Hi <%=current_player.name%>
                    <% end %>
                </li>
            </ul>
        </div>
        <div class="mx-auto order-0">
            <%= image_tag("logo.png", :class => "logo", style: 'height:50px;width:auto;')%>
        </div>
        <div class="navbar-collapse collapse w-100 order-3 dual-collapse2">
            <ul class="navbar-nav ml-auto">
                <li class="nav-item">
                    <%= link_to "My Leagues", leagues_path, class: 'header' %>
                </li>
                <li class="nav-item">
                    <%= link_to "Log out", destroy_player_session_path, method: :delete, class: 'header' %>  
                </li>
            </ul>
        </div>
    <% else %>
        <div class="navbar-collapse collapse w-100 order-3 dual-collapse2">
            <ul class="navbar-nav ml-auto">            
                <li class="nav-item">
                    <%= link_to "Log in", new_player_session_path, class: 'header' %>
                </li>
            </ul>
        </div>
    <% end %>
  </nav>
</header>

Я просто не понимаю, вы понимаете, что мне следует изменить? Спасибо!

1 Ответ

0 голосов
/ 25 апреля 2018
Элементы

<header> не разрешены в <head>, даже если их имена схожи.<head> - это заголовок вашего документа, к которому относятся метаданные, сценарий, ссылка и теги заголовка.Элемент <header> представляет вводный контент в документе <body> или одном из его потомков.

Могу поспорить, что это является причиной проблемы.Переместите <%= render "layouts/header" %> чуть ниже открывающего тега <body>.

Подробнее о теге <header> и о том, где он разрешен, можно прочитать здесь: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/header

...