许多jQuery插件具有以下目录结构:
/<plugin name>
../css
../images
../js
CSS文件通常具有指向其中图像的相对链接。我想要做的是在资产管道下的Rails Way
中包含这些插件,希望这不需要重命名文件引用以删除相关链接。是否有这样的Rails方式?
在资产管道中包含一个已经缩小的jQuery插件是不是太过分了?
答案 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框架的代码。
让我们举一个实际的例子:使用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主题
css/theme-name
文件夹的CSS /图片移动它们:
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
文件夹(可选)移动到:
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插件放在我的资产管道中。是否有矫枉过正,所有这些都集中在一个地方,只编译一次,即使编译它们需要更长时间,也不会影响我的应用。