我正在尝试制作一个小宝石来呈现一些 javascript 并将其传递给 Sprocket 的 JST 处理器。所以文件看起来像foo.jst.bar
然后你可以通过调用它JST[foo]()
我无法弄清楚处理器链接是如何发生的。我认为它会通过注册的 mime 类型自动处理?由于 JST 处理器已注册处理application/javastcript+function
(请参阅:https ://github.com/rails/sprockets/blob/master/lib/sprockets.rb#L169 ),我需要做的就是像这样注册我的处理器:
env.register_mime_type 'text/x-bar-template', extensions: ['.bar', '.jst.bar']
env.register_transformer 'text/x-bar-template', 'application/javascript+function', Bar::Processor
这没有做任何事情。如果我忘记了链接并定义了我自己的JST
命名空间,它就可以正常工作。我觉得我错过了一些不链接到 JSTProcessor 的超级明显的东西。