Rails如何实现html模板到rails应用程序

时间:2015-05-17 17:08:51

标签: css ruby-on-rails ruby asset-pipeline

嗨,我是rails的新手,想知道rails开发人员如何实现html模板到rails应用程序。例如,我想使用此模板:dashgum admin template

我最终将cssjs文件逐个复制到 app / assets 上的每个负责文件夹,并将其加载到application.css和{{ 1}}像这样:

application.css

application.js

的application.js

/*
 * ======================
 * Dashgum admin Template
 * ======================
 *
 *= require bootstrap_and_overrides
 *= require font-awesome
 *= require zabuto_calendar
 *= require jquery.gritter
 *= require line-icons-style
 *= require style
 *= require style-responsive
 */

我觉得这不是最好的做法/轨道优雅的方式来做到这一点。我想知道你们是如何实现它的?感谢帮助。

注意:我不想使用像// This is a manifest file that'll be compiled into application.js, which will include all the files // listed below. // // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts, // or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path. // // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the // compiled file. // // Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details // about supported directives. // //= require Chart //= require jquery //= require jquery_ujs //= require jquery_nested_form //= require jquery-1.8.3.min //= require bootstrap.min //= require bootstrap-switch //= require bootstrap-inputmask.min //= require jquery.dcjqaccordion.2.7 //= require jquery.scrollTo.min //= require jquery.nicescroll //= require jquery.sparkline //= require jquery.tagsinput //= require common-scripts //= require jquery.gritter //= require gritter-conf //= require sparkline-chart //= require zabuto_calendar //= require products //= require_self 那样的宝石,这会让像我这样的新手感到困惑

3 个答案:

答案 0 :(得分:0)

许多流行的库都可以在导轨包中使用,例如twitter-bootstrap-rails

将宝石添加到Gemfile,您可以这样做。

//= require bootstrap

在你的css和js文件中。

最大的好处是,你没有一堆供应商文件乱丢你的存储库,而且升级更容易。

然而,在许多情况下,load popular libraries from CDNs可能会更好,而不是application.js

如果要在开发中使用sprockets管道并使用快速CDN进行生产,则可以执行以下操作:

  1. 创建名为app/assets/javascripts/development.js的文件。不要求application.js。

  2. 在布局中使用条件

  3. if Rails.env.production?
      javascript_include_tag "http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"
    else
      javascript_include_tag "development"
    end
    

答案 1 :(得分:0)

我现在不能发表评论,但你的(papirtiger)在你的布局中有条件的'建议是痛苦的。你怎么想象一个生产应用程序总是会检查if语句?这是一个糟糕的代码味道。

答案 2 :(得分:-1)

我曾经实现过如上所示非常相似的模板。我在application.css中包含了每个css文件。在application.js中,我包含了所有应用程序的最常见文件,我通过在具体视图中调用'content_for'函数添加单个视图所需的文件(并在html文档的底部呈现它们)。好的做法是在您的资源文件夹中创建一个'plugins'目录,并将所有插件附加到模板上(您需要在资产路径中添加'plugins'目录)。

总之,我认为你的解决方案并不坏;)