【问题标题】:Rails Asset Pipeline and admin specific javascript and cssRails 资产管道和管理员特定的 javascript 和 css
【发布时间】:2014-06-11 10:01:56
【问题描述】:

Rails 新手,我读到我应该将所有 JS/CSS 放入 applications.js/applications.css 并由资产管道处理。但是,我有相当数量的 js/css,仅在管理员登录和添加/编辑页面时使用。

在我看来,在每个页面上加载这些脚本和样式的开销很大。优化这个的最佳方法是什么?我可以创建一个单独的资产管道,仅在管理员登录时包含,或者仅在需要的页面上包含?

-编辑 3- 以下将在生产中工作,但您需要添加:config.assets.precompile += ['editing.js', 'editing.css.scss']production.rb

-编辑 2- 以下内容实际上不适用于生产。当我有时间时寻找更好的解决方案。

-编辑-

这是我想出的设置。它工作正常,所以我想我是在问是否有任何理由不应该这样做?

application.html

!!!
%html
  %head
    %meta{:charset => "UTF-8"}
    %meta{name: "Description", content: "base10 CMS"}
    %title= "base10 CMS"

    = stylesheet_link_tag "application", media: "all"
    = javascript_include_tag "application"
    = csrf_meta_tags

    - if admin_signed_in?
      = stylesheet_link_tag "editing", media: "all"
      = javascript_include_tag "editing"
      = cloudinary_js_config

  %body
    #container
      #messages
        - flash.each do |name, msg|
          = content_tag :div, msg, :id => "flash_#{name}"
      #content
        = yield

application.js

//= require jquery
//= require jquery_ujs
//= require bootstrap

editing.js

//= require ckeditor/init
//= require cloudinary
//= require_tree ../../../vendor/assets/javascripts/.

application.css.scss

/*
 *= require baseline
 *= require bootstrap
 *= require font-awesome
 *= require_self
*/

@import 'mixins.css.scss';
@import 'layout.css.scss';
@import 'pages.css.scss';

editing.css.scss

/*
 *= require_self
*/

@import 'mixins.css.scss';
@import 'admin.css.scss';
@import 'forms.css.scss';

【问题讨论】:

  • 您可以在 app/views/layouts 中创建一个带有所需 css/js 的新 admin_layout,这将应用于管理视图,请参阅布局以了解更多 guides.rubyonrails.org/…
  • 这似乎是一种明智的做法。

标签: ruby-on-rails asset-pipeline


【解决方案1】:

你的方法很好。要记住的一件事是,在生产中,application.jsapplication.css.scss 清单中的所有指令都将编译minified到一个文件中(@987654323 @ 和 application.css )所以在大多数情况下不会有太多开销。如果您包含大量额外的东西来支持登录管理员,那么是的,您的方法很好,否则,我不会担心它,只需将所有内容留在 application.* 清单中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-05
    • 2013-07-17
    • 1970-01-01
    • 2012-07-10
    • 2013-01-31
    • 1970-01-01
    相关资源
    最近更新 更多