1

我试图了解asset_pipeline。

我基本上在 style.css.scss 中有我所有的网站范围的代码(在 application.css.scss 中是 @imported)

我还有一些杂项控制器,它们的代码被我拆分成一个单独的文件,只是为了加载到该页面上。例如,在我的profiles_controller 我有profiles.css.scss 和profiles.js

在文档中它说我可以通过键入有条件地包括那些:

<%= stylesheet_link_tag params[:controller] %>

和一个类似的 javascript_include_tag

问题是当我在我的任何没有控制器样式表的页面上查看源代码时,它是找不到 404 文件。我不希望每个控制器有 10 个空白文件和 10 个空白 javascript 文件(那些控制器几乎没有任何额外的 css 或代码,所以我把它放在主 scss 文件中)......我做错了吗?

注意:我已经从 JS 和 css 文件中删除了包含树,因为我不希望包含该文件夹中的任何文件

4

1 回答 1

0

在您的应用程序布局文件中,添加yield这样的语句以将样式表作为一次性包含在不同视图中:

= stylesheet_link_tag    "application"
= yield :stylesheets 
= javascript_include_tag "application"
= yield :javascripts 

然后在要包含样式表的每个视图文件中:

= content_for :stylesheets do
  = stylesheet_link_tag "controller_name"

= content_for :javascripts do
  = javascript_include_tag "controller_name"

这将仅将这些文件包含在您需要它们的视图中。

于 2012-07-03T22:50:35.747 回答