这是个问题,我使用的是 Typus,它在 /vendor/assets 下包含了一个 fancybox jquery 插件。那个fancybox 版本太旧了(1.3.4),它不能与rails 1.9.x 一起工作,所以我需要用与那个版本的jquery 一起工作的fancybox 2.x 替换它,因为我网站的其余部分使用jquery 1.9。
Typus 的 application.js 清单以这种方式加载fancybox
//= require jquery.fancybox-1.3.4.pack
所以我想我可以添加带有该文件名的 fancybox 2,资产管道将使用该版本,但事实并非如此,它正在将文件加载到 /vendor/assets.xml 中。
所以,我的问题是,当有多个同名文件时,rails 如何处理这种情况?有什么优先权吗?最重要的是,我可以更改它以使 /app/assets 下的文件具有更高的优先级吗?
我读过它使用它找到的第一个带有名称的文件,但我不知道如何告诉 rails 先查看某个文件夹。
我试过了
config.assets.paths = [Rails.root.join('app','assets')]
或者
config.assets.paths = [Rails.root.join('app','assets'),Rails.root.join('vendor','assets')]
在我的 config/application.rb 但它继续使用 /vendor/assets 下的文件
我不想 fork>修改 Typus,我想告诉 rails 使用我的 jquery.fancybox-1.3.4.pack.js 版本的文件
我在 github 上看到 Typus 的最后一次提交将 jquery 降级到 1.8.x 但我不能这样做,我需要 jquery 1.9。
我也试图在我的项目中覆盖 Typus 的 application.js 但没有运气。