是否有“Rails Way”包含Asset Pipeline中的jQuery插件?

时间:2013-02-06 20:19:01

标签: ruby-on-rails-3 jquery-plugins ruby-on-rails-3.2 asset-pipeline

许多jQuery插件具有以下目录结构:

/<plugin name>
../css
../images
../js

CSS文件通常具有指向其中图像的相对链接。我想要做的是在资产管道下的Rails Way中包含这些插件,希望这不需要重命名文件引用以删除相关链接。是否有这样的Rails方式?

在资产管道中包含一个已经缩小的jQuery插件是不是太过分了?

3 个答案:

答案 0 :(得分:2)

据我所知,您应该尝试将资源添加到加载路径,这是推荐的方式。如果您运行的应用程序已激活资产管道,则应在展开应用程序中的路径后找到您的资产.rb

config.assets.paths << Rails.root.join("plugins/plugin_name/assets/")

如果这是你所要求的,那就不是保佑,但如果没有,你应该检查:http://guides.rubyonrails.org/asset_pipeline.html#asset-organization

记得重新启动服务器

答案 1 :(得分:2)

我有同样的问题,并试图找到“Rails方式”来做到这一点。这就是我在一天结束时最终得到的结果:

正如罗布已经提到的那样:

  

供应商/资产适用于外部实体拥有的资产,例如JavaScript插件和CSS框架的代码。

来源:2.1 Asset Organization

让我们举一个实际的例子:使用jquery_datepicker gem(注意:我们必须使用解决方法,因为这个问题:bundle pack does not work with git sources)。

1)安装宝石(非常直观):

cd vendor/gems
git clone https://github.com/albertopq/jquery_datepicker.git

2)将其添加到您的Gemfile

gem 'jquery_datepicker', :path => 'vendor/gems/jquery_datepicker'

3)安装jquery-ui主题

  • ThemeRoller选择一个主题,选中Datepicker和Slider 和jQUery版本
  • 下载并解压缩包的内容
  • 来自css/theme-name文件夹的CSS /图片移动它们:
    • jquery-ui-1.8.xx.custom.cssapp/vendor/stylesheets/
    • images文件夹改为app/vendor/images/(是的,移动整个文件夹images,以便最终得到类似app/vendor/images/images/ui-icons_256x240.png
    • 的内容
  • i18n从development-bundle/ui/i18n文件夹(可选)移动到:
    • i18n
    • 下创建一个文件夹app/vendor/javascripts/
    • jquery.ui.datepicker-xx.js移至此文件夹app/vendor/javascripts/i18n/
    • 确保已加载i18n文件夹,因此请加入application.js
//= require_directory ./i18n

vendor/assets自动加载AFAIK,因此您不必在资产管道中包含该路径。

我想看看其他人是如何接近这一点的,这是一个非常好的问题。

答案 2 :(得分:1)

我认为你没有得到答案的原因是因为你不清楚你在问什么。你是否想知道将插件放入资产管道是否过度?您是否在询问是否必须重命名文件引用?

我总是把所有的jquery插件放在我的资产管道中。是否有矫枉过正,所有这些都集中在一个地方,只编译一次,即使编译它们需要更长时间,也不会影响我的应用。