«

Railsアセットパイプラインのパスにvendor/assetsを通す

私はデザイン部分の作り込みが非常に苦手なのでBootstrapを頼りにしてるのですが、
sassやlessなどが分からないせいで、gemでのBootstrapインストールに抵抗がある
どうせ、そんなにデザイン作り込まないし、CSSで適宜追加できたらいいやって。

それに、Bootstrap関連のjsを直接修正したい時があるのもあるので Bootstrap関連ファイルは vendor/assets 以下に ダウンロードしてきたCSSをそのまま入れるようにしているのだけど、 どこかのRailsのバージョンから vendor のファイルは自動的にプリコンパイルしてくれないようになったようだ


試しに、パスをのぞいてみると

$ rails c
> Rails.application.config.assets.paths
=> ["/home/ubuntu/workspace/app/assets/config", 
    "/home/ubuntu/workspace/app/assets/images", 
    "/home/ubuntu/workspace/app/assets/javascripts", 
    "/home/ubuntu/workspace/app/assets/stylesheets", 
    "/usr/local/rvm/gems/ruby-2.4.0/gems/coffee-rails-4.2.2/lib/assets/javascripts",
    "/usr/local/rvm/gems/ruby-2.4.0/gems/actioncable-5.1.5/lib/assets/compiled", 
    "/usr/local/rvm/gems/ruby-2.4.0/gems/actionview-5.1.5/lib/assets/compiled",

確かに vendor のパスが通ってなかった

config.application.rbvendor/assets 以下の任意のディレクトリを 直接書いてパスを通すことにした

# config/application.rb
module Workspace
  class Application < Rails::Application
    #
    # 他の設定が色々書いてあるところ
    #

    # 追加した部分
    Rails.application.config.assets.paths << Rails.root.join('vendor', 'fonts')
    Rails.application.config.assets.paths << Rails.root.join('vendor', 'images')
    Rails.application.config.assets.paths << Rails.root.join('vendor', 'javascripts')
    Rails.application.config.assets.paths << Rails.root.join('vendor', 'stylesheets')
    Rails.application.config.assets.precompile += %w(*.eot *.woff *.woff2 *.ttf *.svg *.otf *.png *.jpg *.gif )
  end
end

もう一度パスが通ってるか確認してみる

$ rails c
> Rails.application.config.assets.paths
=> ["/home/ubuntu/workspace/app/assets/config", 
    "/home/ubuntu/workspace/app/assets/images", 
    "/home/ubuntu/workspace/app/assets/javascripts", 
    "/home/ubuntu/workspace/app/assets/stylesheets", 
    "/usr/local/rvm/gems/ruby-2.4.0/gems/coffee-rails-4.2.2/lib/assets/javascripts",
    "/usr/local/rvm/gems/ruby-2.4.0/gems/actioncable-5.1.5/lib/assets/compiled", 
    "/usr/local/rvm/gems/ruby-2.4.0/gems/actionview-5.1.5/lib/assets/compiled", 
    #<Pathname:/home/ubuntu/workspace/vendor/fonts>, 
    #<Pathname:/home/ubuntu/workspace/vendor/images>,
    #<Pathname:/home/ubuntu/workspace/vendor/javascripts>, 
    #<Pathname:/home/ubuntu/workspace/vendor/stylesheets>]

今度は大丈夫みたい