Ruby on rails Rails将js包含到特定视图中

Ruby on rails Rails将js包含到特定视图中,ruby-on-rails,path,header,ruby-on-rails-5,Ruby On Rails,Path,Header,Ruby On Rails 5,我知道这里的答案是:,但是我没有得到什么 如何在:defaults标记中指定js文件?我试图指定js的路径,而不是使用标记 在application.html.erb中: <head> <title>...</title> <%= csrf_meta_tags %> <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'rel

我知道这里的答案是:,但是我没有得到什么

如何在:defaults标记中指定js文件?我试图指定js的路径,而不是使用标记

在application.html.erb中:

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

  <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
  <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
  <%= yield :head %>
</head>
<!DOCTYPE html>
<html>
<head>
  <title>....</title>
  <%= csrf_meta_tags %>
  <%= content_for :assets do %>
  <%end%>
  <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
  <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
</head>

<body>

<div class="container">
  <%= link_to 'Home', root_path, class: 'btn btn-default' %>
  <button onclick="toggleTodos()" class="btn btn-default">Toggle TODO's</button>

  <% flash.each do |key, value| %>
      <div class="alert alert-<%= key %>"><%= value %></div>
  <% end %>


  <div class="jumbotron">
    <%= yield %>
  </div>

</div>

</body>
</html>

供应商内容的正确位置(非项目特定内容或非您编写的内容)位于
/vendor/assets/javascripts
中。这也解决了您的问题,因为
/=require\u树不需要
供应商/资产

因此,将其移动到
/vendor/assets/javascripts/http\u cdn.quilljs.com\u 1.3.2\u quill.js

/vendor/assets
位于链轮的默认资产查找路径上

<head>
  <title>...</title>
  <%= csrf_meta_tags %>
  <%= content_for :assets do %>
    <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
    <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
  <% end %>
</head>

这还允许您使用
provide
concat:false
,以防覆盖布局提供的块。

供应商内容的正确位置(非项目特定或由您编写的内容)位于
/vendor/assets/javascripts
中。这也解决了您的问题,因为
/=require\u树不需要
供应商/资产

因此,将其移动到
/vendor/assets/javascripts/http\u cdn.quilljs.com\u 1.3.2\u quill.js

/vendor/assets
位于链轮的默认资产查找路径上

<head>
  <title>...</title>
  <%= csrf_meta_tags %>
  <%= content_for :assets do %>
    <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
    <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
  <% end %>
</head>

这还允许您使用
provide
concat:false
,以防覆盖布局提供的块。

您可以将js文件存根以手动加载,然后将其添加到
Rails.application.config.assets.precompile
中的assets.rb文件中,最后使用
javascript\u include\u标记将其添加到视图中。如果您将文件放在
vendor/assets
中,则不需要存根,谢谢你的提示@max。主要问题是视图中的线条不正确。使用
content\u for
和一个块,不要忘了使用
javascript\u include\u tage
可以将js文件存根以手动加载,然后将其添加到
Rails.application.config.assets.precompile
中的assets.rb文件中,最后使用
javascript\u include\u标记将其添加到视图中。如果您将文件放在
vendor/assets
中,则不需要存根,谢谢你的提示@max。主要问题是视图中的线条不正确。使用
content\u for
和一个块,不要忘了使用
javascript\u include\u tage
我认为它可以工作,但它不是。。。很抱歉你能检查一下我的application.html.erb是否正确吗?“它不工作”是世界上最无用的信息。具体是什么不起作用?您必须自己调试应用程序。不起作用的是视图中没有加载js文件。我怀疑我真的不明白如何在application.html.erb中输入“”,因为其他部分非常清楚。只需将
部分替换为我答案中的部分即可。我认为这很明显。我认为它起作用了,但它不是。。。很抱歉你能检查一下我的application.html.erb是否正确吗?“它不工作”是世界上最无用的信息。具体是什么不起作用?您必须自己调试应用程序。不起作用的是视图中没有加载js文件。我怀疑我真的不明白如何在application.html.erb中输入“”,因为其他部分非常清楚。只需将
部分替换为我答案中的部分即可。我觉得这很明显。
<% content_for :assets do %>
  <%= javascript_include_tag('http_cdn.quilljs.com_1.3.2_quill') %>
<% end %>