10

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

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

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

在 Asset Pipeline 中包含一个已经缩小的 jQuery 插件是否也有点过头了?

4

3 回答 3

2

据我所知,您应该尝试将资产添加到推荐的加载路径中。如果您正在运行的应用程序激活了资产管道,它应该在扩展 application.rb 中的路径后找到您的资产

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

不舒尔,如果这是您要求的,但如果不是,您应该检查:http ://guides.rubyonrails.org/asset_pipeline.html#asset-organization

记得重启你的服务器

于 2013-02-15T13:02:48.243 回答
2

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

正如 Rob 已经提到的:

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

资料来源:2.1 资产组织

让我们举一个实际的例子:使用jquery_datepickergem (注意:由于这个问题,我们不得不使用一种解决方法:bundle pack 不适用于 git sources)。

1)安装gem(非常简单):

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/imagescss/theme-name移动它们:
    • jquery-ui-1.8.xx.custom.cssapp/vendor/stylesheets/
    • images文件夹到(是的app/vendor/images/,移动整个文件夹images,这样你最终会得到这样的东西app/vendor/images/images/ui-icons_256x240.png
  • i18n from the development-bundle/ui/i18n folder (optional) move them to:
    • Create a folder i18n under app/vendor/javascripts/
    • move jquery.ui.datepicker-xx.js to this folder app/vendor/javascripts/i18n/
    • make sure the i18n folder is loaded so include in application.js
//= require_directory ./i18n

vendor/assets is loaded automatically AFAIK so you don't have to include the path in the asset pipeline.

I'd like to see how others are approaching this, it's a very good question.

于 2013-02-20T13:35:24.900 回答
1

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

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

于 2013-02-13T15:31:43.640 回答