我在标签中有一个带有此块的布局页面:
# application.html.erb
...
<% if content_for? :head %>
<%= yield :head %>
<% end %>
以下是产生的块:
# index.html.erb
...
<% content_for :head do %>
<link rel="stylesheet" type="text/css" href="//cdn.datatables.net/plug-ins/be7019ee387/integration/bootstrap/3/dataTables.bootstrap.css">
<script type="text/javascript" language="javascript" src="//cdn.datatables.net/1.10.0/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" language="javascript" src="//cdn.datatables.net/plug-ins/be7019ee387/integration/bootstrap/3/dataTables.bootstrap.js"></script>
<% end %>
如果我直接转到索引页面,或者在索引页面上执行刷新,则会将:head块添加到布局中。但是,如果我从另一个页面重定向到索引(对于例如同一控制器中的new.html.erb或不同的控制器)而没有先渲染索引,则不会复制:head块。
我想知道为什么会这样,但我怀疑这与turbo-link有关。
赞赏任何意见。
答案 0 :(得分:1)
是的,问题是Turbolinks。 Turbolinks仅取代头部的身体和头衔。其他头部元素保持完整。
如果要加载外部脚本和样式表,可以将它们放在正文上。