我正在编写一个孤立的Rails引擎,它在 app/assets
中拥有它自己的javascript,这反过来又会加载一系列依赖项,这些依赖项保存在引擎的 vendor/assets
中 .
我一直在测试文件夹中使用虚拟应用程序进行开发,一切都按预期工作 .
如果我将引擎打包为gem并将其安装到单独的rails应用程序中,当我尝试在浏览器中访问引擎时,我得到了 Sprockets::FileNotFound
异常 couldn't find file
.
如果我启动控制台并查看 Rails.application.config.assets.paths
,它包括 mygem/app/assets
但不包括 mygem/vendor/assets
.
这是它变得奇怪的地方 . 如果我更改了应用程序's Gemfile and load the engine directly from a path, I don' t有这些问题 . 我可以在浏览器中查看我的引擎而没有任何Sprockets问题 . 加载控制台并查看 Rails.application.config.assets.paths
会显示 path/to/mygem/app/assets
和 path/to/mygem/vendor/assets
.
我不懂 . 如果将引擎作为打包的gem加载或直接从路径加载,为什么会出现不同的行为?
1 回答
回答我自己的问题 . 学校男孩的错误,与资产管道无关,与添加供应商路径到gemspec配置有关 .