1

了解しました。Redmine(Rails Engines)用のプラグインがあります。プラグインはフックを使用して、HTML/コントロールがRedmineのすべてのページにレンダリングされるようにします。

このプラグインからコントローラーに情報を送受信しています。これで、javascriptとcssで使用できる2つのオプションがあります。相対パスまたは絶対パスです。

URLパスは、パス元の1〜3セクションのどこかにある可能性があるため(コントロールはすべてのページから機能する必要があるため)、相対パスはすべてのページで機能するわけではありません。このオプションでは、プラグインがURL内の同じネストされたレベルでレンダリングされる必要がありますが、そうではありません。

Absolute Pathingは特定のインストールで機能しますが、パスがドメインルートの下にないインストール(www.mysite.comではなくwww.mysite.com/redmine/)で他の人がプラグインを使用すると、プラグインが壊れます。これには手動編集が必要ですが、これはまったくエレガントではありません。

この一見単純な問題に簡単に対処する方法はありますか?

4

1 に答える 1

2

CSS、JS、または画像ファイルの場合は、:pluginオプション付きのタグヘルパーを使用できます(Railsエンジンはこれらにパッチを適用します)

stylesheet_link_tag 'redmine_kanban.css', :plugin => 'redmine_kanban'
javascript_include_tag 'jquery-1.3.2.min.js', :plugin => 'redmine_kanban'
image_tag 'example.png', :plugin => 'redmine_kanban'

プラグイン名がインストールディレクトリ(上記の例ではvendor / plugins / redmine_kanbanなど)と一致していることを確認してください。

css内の画像などのアセットを参照するには、外部のcssファイルとを使用できますurl(../images/example.png。RailsEnginesはassets/ディレクトリをpublic/plugin_assets / plugin_name / [images | javascripts | stylesheets]にコピーするので、画像にアクセスするにはディレクトリを下に移動する必要があります。

JavaScriptはもう少し難しいです。最善の方法は、現在の相対パスのJavaScript変数をエクスポートすることです。このようなことをして、JavaScriptで使用する言語翻訳文字列をJSONにエクスポートします。

javascript_tag("var redmineRootPath = #{Redmine::Utils.relative_url_root}")

お役に立てれば。

于 2011-05-04T22:34:37.977 に答える