これが単純な質問への長い積み上げである場合は申し訳ありませんが、私の考えを明確にしたかったのです。
私は今、いくつかのプロジェクトで Rails 4 を使用image_tag('/assets/image.png')
しており、Rails 4 でアセット パス ヘルパーがどのように機能するかの変更を回避するために使用しています。それは、変更についてもっと学ぶことに決め、この最初の変更を見つけた今日までです。 sprockets-rails に注意してください。ASSET_PUBLIC_DIRECTORIES
また、Rails ヘルパーの /actionview/lib/action_view/helpers/asset_url_helper.rb#L170 はパブリック フォルダーのみを指すことにも注意しました。静的ファイルにアクセスする場合、Rails は public フォルダーを使用することを望んでいることが明らかになりました。
これを理解したので、エッジレールのドキュメントがこれを明確に述べている理由を理解できません。
Rails の以前のバージョンでは、画像、JavaScript、スタイルシートなど、すべてのアセットが public のサブディレクトリに配置されていました。アセット パイプラインにより、これらのアセットの推奨される場所は app/assets ディレクトリになりました。
実際には image_path は public/images フォルダーへの uri を生成しますが、これはまったく逆です。
まとめると、 asset_syncを使用してアセットを S3 にデプロイすることになるため、利用可能なすべてのヘルパーとダイジェスト ビルダーを使用する必要があります。
だから私の質問はただです。画像/コンパイルされていないアセットを配置し、asset_path ヘルパーを使用する正しい場所はありますか? すべてのドキュメントと他のすべてのスタック オーバーフローの会話は、app/assets フォルダーを使用している人々に関するものですが、sprockets-rails は非ダイジェスト アセットに public を使用することを望んでいます。Web 上のドキュメントと情報は更新が必要なだけですか、それともすべてのアセット パスの前に /assets/ を追加するだけの理由があるだけですか?
更新:実際には、開発サーバーを再起動しておらず、app/assets/images 内の画像が表示されなかったため、パブリックにフォールバックするという問題があったと思います。また、ペーパークリップの default_url でアセット ヘルパーを使用していたことにも注意してください (これは、私が見つけたいくつかのスタック オーバーフローの回答でアセットを指す方法として参照されていますが、ペーパークリップで補間されたオプションでアセット パス ヘルパーを使用すると、パブリックにフォールバックします。補間されていないアセット名は、明らかに既存のファイルとして見つかりません。