Redmineプラグイン内でJavascriptや画像やCSSを使いたい場合

プラグインのapp/assetsには

  • images
  • javascripts
  • stylesheets

のフォルダを配置できる。ここのJavascriptとかをおいても、自動で読み込んでくれないみたいで、すごく悩んだ。
調べてみるとRails Engines基礎さんを見つけて、Javascriptの場合は「javascript_include_tag」、画像は「image_tag or image_path」を使うということが判明。WEBrickの再起動も必要。

 <%= javascript_include_tag "/html5jp/graph/circle.js", :plugin => "redmine_daizu" %>
<%= image_tag "s1.gif", :plugin => "redmine_all_time_team" %>

この場合、以下のように出力される。

 /pluginemassets/redmine/emdaizu/javascripts/html5jp/graph/circle.js
<img alt="S1" src="/plugin_assets/redmine_all_time_team/images/s1.gif?1241678297" />

スタイルシートの場合は「stylesheet_link_tag」になる。

 <%= stylesheet_link_tag "my_styles", :plugin => "my_plugin", :media => "screen" %>
<%= image_tag "my_face", :plugin => "my_plugin" %>
<!-- or -->
<%= image_path "my_face", :plugin => "my_plugin" %>

参考はEngines::RailsExtensions::AssetHelpers