2

我们知道,在加载之前加载所有 JS</body>可以使页面加载更快,所以我在我的 Rails 应用程序中这样做:
在我的 layouts/application.html.erb

<html>
  <head>
    <title>ABC</title>
    <!-- load CSS -->
  </head>
  <body>
    <%= yield %>
    <!-- asynchronous load Jquery -->
    <!-- asynchronous load others script -->
  </body>
</html>

这里的问题是在某些视图中,我加载了一些存储在其中的 JS vendor/assets/javascript/(避免//=require_tree .资产管道),因此所有<%= yield %>包含的代码都可以在之前加载JQuery并且不起作用。

有什么解决方案可以让所有这些脚本在加载后Jquery工作前Jquery加载?

4

1 回答 1

4

使用content_for

# layouts/application.html.erb
<%= yield %>
<%= javascript_include_tag 'application' %>
<%= yield(:custom_js) if content_for?(:custom_js) %>     

# layouts/widgets/show.html.erb
<% content_for :custom_js do %>
  <script src='vendor/assets/javascript/widgets.js'>
<% end %>
于 2013-05-25T05:12:34.640 回答