次のようなカスタム 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
アイデアやガイダンスをいただければ幸いです。
ありがとう!