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

问题描述 投票:0回答:1

[目前,我有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>
css ruby-on-rails ruby-on-rails-5 asset-pipeline turbolinks
1个回答
0
投票

Turbolinks在不同模板的JavaScript和CSS保持一致时效果最佳。如果必须在布局之间显着更改脚本和样式,建议您将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注意到新页面和上一页之间存在差异时,它将重新加载该页面。这对于确保用户下载最新部署的资产也很重要。

© www.soinside.com 2019 - 2024. All rights reserved.