10

多くのjQueryプラグインには、次のディレクトリ構造があります。

/<plugin name>
../css
../images
../js

CSSファイルには通常、その中の画像への相対リンクがあります。私がやりたいのは、これらのプラグインをRails Wayアセットパイプラインの下に含めることです。これには、相対リンクを削除するためにファイル参照の名前を変更する必要がないことを願っています。そのようなレールウェイはありますか?

すでに縮小されたjQueryプラグインをアセットパイプラインに含めるのはやり過ぎかもしれませんか?

4

3 に答える 3

2

私の知る限り、推奨される方法であるロードパスにアセットを追加してみてください。実行しているアプリケーションでアセットパイプラインがアクティブ化されている場合、application.rbでパスを展開した後、アセットが検出されるはずです。

config.assets.paths << Rails.root.join("plugins/plugin_name/assets/")

わからない、これがあなたが求めていたものである場合、そうでない場合は、チェックする必要があります:http: //guides.rubyonrails.org/asset_pipeline.html#asset-organization

サーバーを再起動するためのRemeber

于 2013-02-15T13:02:48.243 に答える
2

私は同じ問題を抱えていて、これを行うための「Railsの方法」を見つけようとしました。そして、これは私が一日の終わりに終わったものです:

ロブがすでに述べたように:

vendor/assetsは、JavaScript プラグインや CSS フレームワークのコードなど、外部エンティティが所有するアセット用です。

出典: 2.1 資産組織

実際の例を見てみましょう: jquery_datepickergem を使用します (注: この問題のため、回避策を使用する必要がありました:バンドル パックは git ソースでは機能しません)。

1) gem のインストール (非常に簡単です):

cd vendor/gems
git clone https://github.com/albertopq/jquery_datepicker.git

2) これを Gemfile に追加します

gem 'jquery_datepicker', :path => 'vendor/gems/jquery_datepicker'

3) jquery-ui テーマをインストールする

  • ThemeRollerからテーマを選択し、Datepicker と Slider と jQuery のバージョンを確認します
  • パッケージのコンテンツをダウンロードして抽出する
  • css/theme-nameフォルダー からの CSS/画像はそれらを移動します:
    • jquery-ui-1.8.xx.custom.cssapp/vendor/stylesheets/
    • imagesフォルダーを移動します(はい、app/vendor/images/フォルダー全体を移動して、imagesこのような結果になりますapp/vendor/images/images/ui-icons_256x240.png
  • i18ndevelopment-bundle/ui/i18nフォルダーから (オプション) それらを次の場所に移動します。
    • i18nの下にフォルダーを作成します。app/vendor/javascripts/
    • jquery.ui.datepicker-xx.jsこのフォルダに移動app/vendor/javascripts/i18n/
    • i18nフォルダがロードされていることを確認してくださいapplication.js
//= require_directory ./i18n

vendor/assets私の知る限り自動的に読み込まれるため、アセット パイプラインにパスを含める必要はありません。

他の人がこれにどのように取り組んでいるかを知りたいのですが、それは非常に良い質問です.

于 2013-02-20T13:35:24.900 に答える
1

あなたが答えを受け取らなかった理由は、あなたが何を求めているのかがはっきりしないからだと思います。プラグインをアセットパイプラインに配置するのはやり過ぎかどうか尋ねていますか?ファイル参照の名前を変更する必要があるかどうかを尋ねていますか?

私は常にすべてのjqueryプラグインをアセットパイプラインに配置しています。やり過ぎであろうとなかろうと、すべてが1つの場所にあり、コンパイルされるのは1回だけなので、コンパイルに時間がかかっても、アプリには影響しません。

于 2013-02-13T15:31:43.640 に答える