2011-11-15 8 views
6

私はアセットパイプラインに問題があります。アセットというリソース/コントローラがあります。ですから、assets.prefixオプションを "/ external"に変更しました。Rails 3.1.1 - Asset Pipeline - asset.prefixがリソースと連携していません:assets

config.assets.prefix = '/externals' 

この単純な用量は私が削除しない限り、動作しない:

resources: assets 

そして、すべての作品を予想通り。

私はこれを証明するテストを書く方法がわかりませんが、私はそれを紹介するアプリを作成しました。アプリを実行し、「/製品」を訪問すれば

https://github.com/nodrog/asset-pipeline-issue

すべてがうまくいく、その後、routesファイルに移動し、trueに変数create_bugを変更します。

https://github.com/rails/rails/blob/master/actionpack/lib/sprockets/helpers/rails_helper.rbを調べてから、asset_pathメソッドにデバッガを追加しました。

このメソッドは、javascript_include_tagメソッドのデバッガ以外は呼び出されません。また、メソッド(:asset_path).source_locationを実行すると、スプロケットヘルパーからではなく、デフォルトルートからメソッドを呼び出していることがわかります。

任意の助けをいただければ幸いです...

+0

は、この問題のレールの灯台でチケットをオープンしました。おそらく最善の方法ではないが、問題を解決する人々をアップロードしている。 https://github.com/rails/rails/issues/3643#issuecomment-2775938 – nodrog

+0

あなたは正しいnodrogですが、これは複雑な問題です。ヘルパーがconfig.assets.prefixオプションを使用していなかったため(リソースがあるかどうかに関係なく、routes.rbのアセット)、それが修正されたときにすべてがうまくいっていると私は考えました。悲しいかな、スプロケットヘルパーはアセットがconfig.rbで指定されているときにconfig設定を使用しません。どうして? 私は今あなたの作品を見ていきます。私は制約を抱えてそれを回避しようとしました。私のカスタムプレフィックスをSprocketsに向けましたが、運はありません。 – Docunext

答えて

関連する問題