我想在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」%>'並重新啓動服務器,你會得到什麼? –