0

我在 Apache 上有一个 Rails 3.2 项目。在views/layouts/application.html.erb文件中我有这些行

<%= stylesheet_link_tag :all %>
<%= yield :javascript_includes %>

它不包含所有 CSS 和 JavaScript 文件,而是仅包含all.cssand defaults.js(它们不存在)。如何使它链接到所有 CSS 和 JavaScript 文件?

4

1 回答 1

1

由于您使用的是 Rails 3.2,因此 Sprockets 被用于从清单文件中加载静态资产。要将所有资产包含在默认样式表和 javascripts 文件夹中,您可以执行以下操作:

# application.js
//= require jquery
//= require jquery_ujs
//= require_tree .

require_tree .告诉 Sprockets 加载和编译您app/assets/javascripts目录中的所有 Javascript(和 CoffeeScript)文件。

# app/assets/stylesheets/application.css
*= require_self
*= require_tree . 

同样,require_tree .告诉 Sprockets 加载目录中的所有 CSS(和 SCSS)文件app/assets/stylesheets

然后,如果您的布局,您将包含以下包含标签来代替您在问题中列出的标签:

# app/views/layouts/application.html.erb
<%= stylesheet_link_tag "application" %>
<%= javascript_include_tag "application" %>

您可能想查看官方 Rails资产管道指南。资产管道是 Rails 3.1 的重大更新——许多用户认为这是一个很大的改进——它对静态资产的加载方式产生了重大影响。

于 2013-06-15T02:22:42.017 回答