Javascript和CSS特定文件,如何按惯例包含它们?Rails 3.1

Uni*_*ech 0 ruby-on-rails ruby-on-rails-3.1

如何在Ruby Rails 3.1中包含特定的JS或CSS文件(按照惯例?)?

我有一个观点:views/project/index.html.erb

我想为此页面添加一个特定的javascript文件.我把它放在assets/javascripts/project/index.js中

另一个视图相同:home/index.html

谢谢

And*_*rew 5

application.cssapplication.js文件中,请务必删除该行\\= require tree.

然后,手动列出要包含在每个清单文件中的所有css/js文件,例如:

// application.js
//= global.js
//= everywhere.js
Run Code Online (Sandbox Code Playgroud)

然后,我会在你的标题或你的应用程序布局文件的结束体标记中设置一个yield(例如haml)

%head
  %title Some Page
  = stylesheet_link_tag 'application'
  = yield :stylesheets
Run Code Online (Sandbox Code Playgroud)

然后在您的特定视图中_example_partial.html.haml,请执行以下操作:

- content_for :stylesheets do
  = stylesheet_link_tag 'example_partial'

-# the rest of your view goes here
Run Code Online (Sandbox Code Playgroud)

您使用Javascript文件执行完全相同的操作,只需使用javascript_include_tag而不是stylesheet_link_tag.

这将使您可以快速轻松地组合特定于视图的javascript/css有效负载.可能有一种更复杂的方法来使用资产管道处理这个问题,但我建议如果资产管道已经缩小并合并你的主要样式表,那么每个视图的这种+1 css/js文件不会导致主要表现受到打击 试着确保你不要过多地将几十个单独的文件加载到一个视图中.