rails 5 中布局不同的 redirect_to 未加载资产

Asset not loaded with redirect_to with different layout in rails 5

目前,我有 2 种布局,比如 'devise'(对于未验证的页面)和 'application'(对于登录后的所有页面)。出于某种原因,在执行 redirect_to root_url 后登录后,仪表板已加载,但未加载任何 CSS 和 jQuery。刷新页面后,一切正常。我不确定是什么原因造成的。任何帮助,将不胜感激。提前致谢。

这是我的文件布局。

1. devise.html.erb

<head>
  <title></title>
  <%= csrf_meta_tags %>
  <%= csp_meta_tag %>

  <!-- Main css styles -->
  <%= stylesheet_link_tag  'devise' %>

  <!-- Main javascript files -->
  <%= javascript_include_tag 'devise' %>
</head>

2。 application.html.erb

<head>
   <title></title>
   <%= csrf_meta_tags %>
   <%= csp_meta_tag %>
   <!-- <meta name="viewport" content="width=device-width, initial-scale=1.0"> -->

   <!-- Main css styles -->
   <%= stylesheet_link_tag 'application'%>
   <%= javascript_include_tag 'application' %>
</head>

当您的 JavaScript 和 CSS 在不同模板中保持一致时,Turbolinks 效果最佳。如果您必须在布局之间显着更改脚本和样式,我建议您将 data-turbolinks-track="reload" 添加到资产标签中:

<head>
  <title></title>
  <%= csrf_meta_tags %>
  <%= csp_meta_tag %>

  <!-- Main css styles -->
 <%= stylesheet_link_tag 'devise', 'data-turbolinks-track': 'reload' %>

  <!-- Main javascript files -->
  <%= javascript_include_tag 'devise', 'data-turbolinks-track': 'reload' %>
</head>

<head>
   <title></title>
   <%= csrf_meta_tags %>
   <%= csp_meta_tag %>
   <!-- <meta name="viewport" content="width=device-width, initial-scale=1.0"> -->

   <!-- Main css styles -->
   <%= stylesheet_link_tag 'application', 'data-turbolinks-track': 'reload' %>
   <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload'  %>
</head>

当 Turbolinks 注意到新页面与前一个页面之间存在差异时,它将重新加载该页面。这对于确保用户下载最近部署的资产也很重要。