许多 jQuery 插件具有以下目录结构:
/<plugin name>
../css
../images
../js
CSS 文件通常具有指向其中图像的相对链接。我想要做的是将这些插件包含Rails Way
在资产管道下,并希望这不涉及必须重命名文件引用以删除相对链接。有这样的 Rails 方式吗?
在 Asset Pipeline 中包含一个已经缩小的 jQuery 插件是否也有点过头了?
许多 jQuery 插件具有以下目录结构:
/<plugin name>
../css
../images
../js
CSS 文件通常具有指向其中图像的相对链接。我想要做的是将这些插件包含Rails Way
在资产管道下,并希望这不涉及必须重命名文件引用以删除相对链接。有这样的 Rails 方式吗?
在 Asset Pipeline 中包含一个已经缩小的 jQuery 插件是否也有点过头了?
据我所知,您应该尝试将资产添加到推荐的加载路径中。如果您正在运行的应用程序激活了资产管道,它应该在扩展 application.rb 中的路径后找到您的资产
config.assets.paths << Rails.root.join("plugins/plugin_name/assets/")
不舒尔,如果这是您要求的,但如果不是,您应该检查:http ://guides.rubyonrails.org/asset_pipeline.html#asset-organization
记得重启你的服务器
我有同样的问题,也试图找到“Rails 方式”来做到这一点。这就是我最终得到的结果:
正如 Rob 已经提到的:
vendor/assets用于外部实体拥有的资产,例如 JavaScript 插件和 CSS 框架的代码。
资料来源:2.1 资产组织
让我们举一个实际的例子:使用jquery_datepicker
gem (注意:由于这个问题,我们不得不使用一种解决方法: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 主题
css/theme-name
移动它们:
jquery-ui-1.8.xx.custom.css
到app/vendor/stylesheets/
images
文件夹到(是的app/vendor/images/
,移动整个文件夹images
,这样你最终会得到这样的东西app/vendor/images/images/ui-icons_256x240.png
development-bundle/ui/i18n
folder (optional) move them to:
i18n
under app/vendor/javascripts/
jquery.ui.datepicker-xx.js
to this folder app/vendor/javascripts/i18n/
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.
我认为你没有收到答案的原因是因为它有点不清楚你在问什么。您是否在问将插件放入资产管道是否过大?你问是否必须重命名文件引用?
我总是把我所有的 jquery 插件放在我的资产管道中。是否矫枉过正,都在一个地方,它们只编译一次,所以即使编译它们需要更长的时间,它也不会影响我的应用程序。