为啥'javascript_pack_tag'只适用于'body'而不是html'head'(Rails 6和webpack)

Posted

技术标签:

【中文标题】为啥\'javascript_pack_tag\'只适用于\'body\'而不是html\'head\'(Rails 6和webpack)【英文标题】:Why 'javascript_pack_tag' only works in the 'body' and not the html 'head' (Rails 6 and webpack)为什么'javascript_pack_tag'只适用于'body'而不是html'head'(Rails 6和webpack) 【发布时间】:2020-08-07 23:27:11 【问题描述】:

在我的 rails 6 应用程序中,我的 jquery 仅在我将 <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %> 包含在 html 的“body”而不是“head”时才有效。我想知道为什么会出现这种情况以及我需要做些什么来解决它。这是我的 application.html.erb

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <title>TumaJobs</title>
    <%= csrf_meta_tags %>
    <%= action_cable_meta_tag %>
    <%= stylesheet_link_tag 'application', media: 'all' %>
    <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
  </head>
  <body>
    <%= render 'shared/navbar' %>
    <%= render 'shared/flashes' %>
    <table class="layout-table">
      <tr class="layout-content-row">
        <td class="layout-content-column">
          <%= yield %>
        </td>
      </tr>
      <tr>
        <td>
          <%= render 'shared/footer' %>
        </td>
      </tr>
    </table>
  </body>
</html>

在我的 application.js 中,我有

require("bootstrap/dist/js/bootstrap")
require("jquery")
window.jQuery = $;
window.$ = $;

require("@rails/ujs").start()
require("turbolinks").start()
require("@rails/activestorage").start()
require("channels")

require("../search")

require("trix")
require("@rails/actiontext")

在 search.js 我有这个 jquery 代码

  $(".jobs_search input").keyup(function() 
    $.get($(".jobs_search").attr("action"), $(".jobs_search").serialize(), null, "script");
    return false;
  );

【问题讨论】:

【参考方案1】:

试试这个

javascript_pack_tag 在头

$(document).on('turbolinks:load', function()
  $(".jobs_search input").keyup(function() 
    $.get($(".jobs_search").attr("action"), $(".jobs_search").serialize(), null, "script");
    return false;
  );
)

【讨论】:

它有效,谢谢。如果您不介意,您能简要解释一下为什么它现在有效吗?

以上是关于为啥'javascript_pack_tag'只适用于'body'而不是html'head'(Rails 6和webpack)的主要内容,如果未能解决你的问题,请参考以下文章

使用 UINavigationItem 类的属性 leftItemsSupplementBackButton

Rails + React 应用程序页面需要重新加载才能呈现 React

单列模式的介绍

canvas二维光照效果

我试图通过Webpack将Quilljs添加到Rails 5.1应用程序中

2阶段——XML解析