我想在Ruby on Rails 4.2.0中使用视图特定的JavaScript,所以我想要在任何要加载的地方动态加载它。我把应该加载的javascript文件(headers.js)放在assets/javascripts中。我删除了application.js文件中的require树行。在Ruby on Rails中加载JavaScript
我已经更新application.html.erb
application.html.erb
<!DOCTYPE html>
<html>
<head>
<title>Sandbox</title>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= stylesheet_link_tag params[:controller] %>
<%= csrf_meta_tags %>
<%= render 'partials/shim' %>
</head>
<body>
<%= render 'partials/header' %>
<%= yield :javascript_includes %>
<%= render 'partials/footer' %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
</body>
</html>
,我想呼吁观点的最顶端的JavaScript文件。
view.html.erb
<% content_for :javascript_includes do %>
<%= javascript_include_tag "headers.js" %>
<% end %>
我已经更新了初始化/ assets.rb文件以及:
Rails.application.config.assets.precompile += %w(headers.js)
出于某种原因,该视图的HTML内容将不加载和我在控制台中收到错误:未捕获的ReferenceError:未定义jQuery。
为什么它不起作用?我如何做这项工作,我错过了什么?
也许你的文件依赖于jQuery的,而你试图加载它在Rails加载jQuery之前,你需要看看是否改变资产的顺序使它工作。 –
试试'<%= javascript_include_tag“headers.js”%>'并重新启动服务器,你会得到什么? –