我试图制作一个小的宝石,渲染一些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的东西。