【问题标题】:Javascript and CSS specific files, how to include them by convention ? Rails 3.1Javascript 和 CSS 特定文件,如何按约定包含它们?导轨 3.1
【发布时间】: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


    【解决方案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 文件不会导致主要业绩受到打击。只需尝试确保您不会将数十个单独的文件加载到单个视图中而过度。

    【讨论】:

    • 值得注意的是,这种方法在生产中运行良好。例如。如果您查看生产中的源代码,您会看到单个控制器 javascript 文件获得了适当的缓存清除名称,就像主 application.js 文件一样:
    • 我认为发现当前视图页面上是否存在css或javascript文件会更好。
    猜你喜欢
    • 1970-01-01
    • 2012-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-12
    • 2011-11-24
    • 2012-09-22
    相关资源
    最近更新 更多