嗨,我是rails的新手,想知道rails开发人员如何实现html模板到rails应用程序。例如,我想使用此模板:dashgum admin template。
我最终将css
和js
文件逐个复制到 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
那样的宝石,这会让像我这样的新手感到困惑
答案 0 :(得分:0)
许多流行的库都可以在导轨包中使用,例如twitter-bootstrap-rails。
将宝石添加到Gemfile
,您可以这样做。
//= require bootstrap
在你的css和js文件中。
最大的好处是,你没有一堆供应商文件乱丢你的存储库,而且升级更容易。
然而,在许多情况下,load popular libraries from CDNs可能会更好,而不是application.js
如果要在开发中使用sprockets管道并使用快速CDN进行生产,则可以执行以下操作:
创建名为app/assets/javascripts/development.js
的文件。不要求application.js。
在布局中使用条件
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'目录)。
总之,我认为你的解决方案并不坏;)