#author("2021-04-29T04:58:59+00:00","default:src128","src128") #author("2021-04-29T05:14:28+00:00","default:src128","src128") &tag(Rails/アセットパイプライン); *目次 [#y31a3ec4] #contents *関連ページ [#h48fdcc7] *参考情報 [#s6a03ca3] -[[アセットパイプライン - Railsガイド:https://railsguides.jp/asset_pipeline.html]] *基本 [#r5891616] -JavaScriptやCSSのアセットを最小化 、圧縮して連結するためのフレームワーク。sprockets-railsが使われる。 -開発環境ではアセットのプリコンパイルは使われないが、本番ではプリコンパイルされる。 -このための本番環境でアセットのトラブルがおこりがち。 *アセットのプリコンパイル [#hba59919] -本番環境ではプリコンパイル済みのアセットを使用する。 -以下のコマンドでアセットをプリコンパイルできる。public/assets以下にファイルが作られる。 rake assets:precompile RAILS_ENV=production -プリコンパイルは通常フィンガープリントつきのファイル名が作られる。このためasset_pathなどのRubyメソッドを使ってアクセスする必要あり。 -ただしJavaScriptから画像を参照したい場合、この方法は使えない。 -jquery.rarty.jsのようなライブラリはバイブから画像を指定できるので、erbなどから指定したほうがよいっぽい。 -どうしてもだめな場合、「config.assets.compile = true」でどうにかするしかない(この場合public/asset以下にファイルはつくられない)。 *Tips [#pac9b945] **CKEditorのアセットでフィンガープリントがついてないアセットが作られる理由は? [#l70e0b7e] -「rake assets:precompile」を実行すると通常フィンガープリントつきのアセットが生成される。 -しかしCKEditorの場合フィンガープリントがついていないアセットも作られる。これはCKEditor独自のrakeタスクが定義されていて、そこで作成処理がおこなわれているため。