最近Railsを始めたのですが、アプリ内でJavascriptを読み込むときに一般的なhead内でのアセットパイプライン出力ではなく、</body>
タグ直前付近で読み込ませたいなと思い、調べてやってみました。
※Rails、マークダウンとも慣れていないのでなにかありましたらご指摘ください。
lightbox2を例に
配置
vendor/assets
┠/lightbox(DL・解凍した時点ではsrcというフォルダ)
┃ ┠/js─lightbox.js
┃ ┠/css─lightbox.css
┃ ┗/images─(矢印等一式 ※今回触れてません)
┗/javascripts・/stylesheets等
手順
- lightboxファイル一式を入れたフォルダは
vendor/assets
以下に配置 - cssはheadの方のアセットパイプラインへお任せ
*= require css/lightbox
(application.css) - javascriptは下記のような書き方でした。配列なので複数指定することもオケなようです
config/initializers/assets.rb
Rails.application.config.assets.precompile += %w( js/lightbox.js )
後はapplication.html.erbの</body>
直前や、index・show等のビュー下部で
layouts/application.html.erb
<%= javascript_include_tag "js/lightbox.js" %>
</body>
とすることで読み込まれました。
直接publicに置いたりCDNで読み込ませる方法もあると思いますが、ライブラリのファイル一式を固めて置いとけるのが気持ちスッキリということでのやり方でした。