【发布时间】:2016-09-21 23:11:32
【问题描述】:
我有一个包含许多外部资产库的应用程序。为了组织我的资产,我想将这些外部库存储在vendor/assets 文件夹中。
我的印象是这个文件夹加载了app/assets,并且对 appliation.js 和 application.scss 清单文件中文件的引用可以正常工作。
//= require some_library
*= require some_library
但是,将库从 app/assets 转移到 vendor/assets 后,我的前端无法正常工作。
将文件放回app/assets 可以解决问题。
我认为这是可以实现的,我错了吗?
是否有禁用供应商文件夹的设置?
我如何测试发生了什么?
示例
我正在使用summernote 替换文本区域。
这是app/assets 中文件的结果:
当我将文件传输到vendor/assets 时会发生这种情况:
summernote 的 JavaScript 有效,我可以使用 $(elem).summernote(),但结果不是我所期望的。
【问题讨论】:
-
它是如何“崩溃”的?你有 404 吗?文件是否已加载但为空?错误?
-
我将上传一个带有图像的示例并重新折叠以停止正常工作。
-
如果
$(elem).summernote()工作,是否意味着文件实际上正在加载?你在任何地方都有 require_tree 吗? -
是的,我在 application.js 和 application.scss 中使用了
require_tree,它也应该加载vendor。 -
如果您的 ./app/assets/javascripts/ 上有
//= require_tree .,它将需要该文件夹中的所有 Javascript 文件,而不是供应商中的。查看documentation 的更多信息。这是我的建议,不要使用 require_tree,它不能保证顺序并且它是许多错误的根源。只需根据需要手动要求每个文件,它将帮助您保持代码精简。
标签: ruby-on-rails asset-pipeline vendor