如何包含特定于页面的JavaScript?

时间:2012-05-18 16:32:02

标签: ruby ruby-on-rails-3

在我的Rails应用程序中,每个页面都包含assets中的所有JavaScripts。

一些自定义脚本适用于Ajax和一些奇特的东西。从每个页面不必要地运行并导致我不必要的过载。

例如,会话页面根本不需要任何JavaScript,但仍然包含所有脚本。我该如何改变?我有Rails 3.2.2。

<script src="/assets/jquery-1.7.2.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery.ui.core.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery.ui.widget.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery.ui.position.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery.ui.autocomplete.js?body=1" type="text/javascript"></script>
<script src="/assets/special.js?body=1" type="text/javascript"></script>

2 个答案:

答案 0 :(得分:8)

我使用content_for

application.html.erb

<head>
  <%= yield :custom_js %>
</head>

your_page.html.erb

<% content_for :custom_js do %>
   <!-- your script includes go here -->
<% end %>

答案 1 :(得分:2)

不要将<script>元素放在您的布局中,将它们放在您需要的页面上。或者,根据控制器中设置的逻辑,让您的布局有条件地包含它们。