at posts/single.html

tDiary を Rack 環境で動かす時に contrib の JavaScript も自動ロードする

いつも忘れるので自分用にメモ。tDiaryのJavaScriptやCSSがどのようにロードされるかという話。

CGI 環境

JavaScript は js フォルダ、 CSS は theme フォルダから読み込まれる。これは Web サーバのお仕事。

Rack 環境

JavaScriptとCSSは assets フォルダから読み込まれる。これは Rack ミドルウェア (Sprockets) のお仕事。このように、 config.ru で指定している。

map "#{base_dir}/assets" do
        environment = Sprockets::Environment.new
        %w(js theme).each {|path| environment.append_path path }

        # if you need to auto compilation for CoffeeScript
        # require 'tdiary/rack/assets/precompile'
        # use TDiary::Rack::Assets::Precompile, environment

        run environment
end

なので、 tdiary-contrib を使うときには、 config.ru を修正して contrib の JavaScript も自動ロードさせればよい。

@@ -21,7 +21,7 @@ end
 
 map "#{base_dir}/assets" do
        environment = Sprockets::Environment.new
-       %w(js theme).each {|path| environment.append_path path }
+       %w(js theme ../tdiary-contrib/js).each {|path| environment.append_path path }
 
        # if you need to auto compilation for CoffeeScript
        # require 'tdiary/rack/assets/precompile'

../tdiary-contrib/js はフォルダ構成に合わせて指定すること。

こういう、 Rack 環境で tDiary を動かすときの Tips はどこかで整理したい。

参考

関連する日記