3

在我的 Rails 应用程序中,每个页面都包含assets.

一些自定义脚本用于 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>
4

2 回答 2

8

我用content_for.

应用程序.html.erb

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

your_page.html.erb

<% content_for :custom_js do %>
   <!-- your script includes go here -->
<% end %>
于 2012-05-18T16:41:16.413 回答
2

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

于 2012-05-18T16:41:46.387 回答