我正在尝试创建一个自定义 Liquid 模板标签,如下所示:
class ScriptLoader < Liquid::Tag
def initialize(tag_name, filename, tokens)
super
@file = filename
end
def render(context)
settings.cdn_url << 'script/' << @file
end
end
Liquid::Template.register_tag('script', ScriptLoader)
上述代码位于外部文件位置: (project_dir)/tags/scriptloader.rb
此文件包含在 app.rb 启动文件中。
但问题是设置变量是空的,即使在使用 set 方法在 app.rb 文件中添加配置之后也是如此。
在我的模板中调用 {% script 'myfile' %} 时的响应:
Liquid error: undefined method `cdn_url' for Sinatra::Application:Class
任何想法或指导将不胜感激!
谢谢!