【发布时间】:2011-07-01 18:32:51
【问题描述】:
如何在 Ruby Rails 3.1 中包含特定的 JS 或 CSS 文件(按照惯例?)?
我有一个看法: 意见/项目/index.html.erb
我想为此页面添加一个特定的 javascript 文件。我把它放进去 资产/javascripts/project/index.js
另一个视图也一样: 主页/index.html
谢谢
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3.1
如何在 Ruby Rails 3.1 中包含特定的 JS 或 CSS 文件(按照惯例?)?
我有一个看法: 意见/项目/index.html.erb
我想为此页面添加一个特定的 javascript 文件。我把它放进去 资产/javascripts/project/index.js
另一个视图也一样: 主页/index.html
谢谢
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3.1
在application.css和application.js文件中,一定要删除\\= require tree这一行。
然后,手动列出你希望包含在每个清单文件中的所有 css/js 文件,例如:
// application.js
//= global.js
//= everywhere.js
然后,我将在您的标题或结束正文标记中为您的应用程序布局文件设置一个产量,例如(在 haml 中)
%head
%title Some Page
= stylesheet_link_tag 'application'
= yield :stylesheets
然后在您的特定视图中,例如_example_partial.html.haml,执行以下操作:
- content_for :stylesheets do
= stylesheet_link_tag 'example_partial'
-# the rest of your view goes here
您对 Javascript 文件执行完全相同的操作,只是使用 javascript_include_tag 而不是 stylesheet_link_tag。
这将让您快速轻松地组装特定于视图的 javascript / css 有效负载。使用资产管道可能有一种更复杂的方法来处理这个问题,但我建议如果资产管道已经在缩小和合并您的主要样式表,那么每个视图的这种 +1 css / js 文件不会导致主要业绩受到打击。只需尝试确保您不会将数十个单独的文件加载到单个视图中而过度。
【讨论】: