ruby-on-rails - 由于 Turbolinks on rails,页面自动刷新
问题描述
在我的 Rails 应用程序上,我的一些页面会自动刷新,没有任何明显的原因。在我的控制台中,我收到以下消息:
turbolinks.self-2db6ec539b9190f75e1d477b305df53d12904d5cafdd47c7ffd91ba25cbec128.js?body=1:7 您正在从元素内的元素加载 Turbolinks。这可能不是你想要做的!
而是在元素内加载应用程序的 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>
我只是不明白,你知道我应该改变什么吗?谢谢 !
解决方案
<header>
中不允许使用元素<head>
,即使它们的名称相似。这<head>
是您的文档的头部,元数据、脚本、链接和标题标签属于其中。该<header>
元素表示文档<body>
或其后代之一中的介绍性内容。
我敢打赌,这就是导致问题的原因。移动<%= render "layouts/header" %>
到您的开始<body>
标签下方。
您可以在此处阅读有关<header>
标签及其允许位置的更多信息:https ://developer.mozilla.org/en-US/docs/Web/HTML/Element/header
推荐阅读
- javascript - 如何在没有酶的情况下测试子组件方法?
- javascript - 在 JavaScript 中使用 Object Literal 循环
- excel - 使用文件名组合和合并相似的零件编号
- php - 动态查找特定数组索引
- python - pygame“Paint”程序 - 在画布上绘制空矩形
- google-chrome - ThreeJS DracoLoader 在 Chrome 而不是 Firefox 中工作的原因是什么?
- ios - SVG 线性渐变未在 iOS Ionic/Angular 应用程序中呈现
- javascript - javascript动态更改angularjs ui-router ui-view中的嵌套视图
- typescript - 如何为有区别的联合创建通用组合函数
- php - Laravel - 在验证字段中显示自定义错误