- 更新日: 2014年6月24日
- Rails
Rails の Asset Pipeline 有効ではまった箇所
昨日作成した Rails4.1 の staging 環境 で、とりあえず webrick を起動して Asset Pipeline を試そうとしたらいくつかはまったので備忘録です。
— 環境 —
rails 4.1
bootstrap-sass (3.0.2.0)
sass (3.2.19)
sass-rails (4.0.1)
config.serve_static_assets の設定
まず webrick 起動の場合、config.serve_static_assets を true にする必要があります。
config/environments/***.rb
1 2 3 |
config.serve_static_assets = true config.assets.compile = false config.assets.digest = true |
Apache や Nginx で動かす場合は、config.serve_static_assets は false で良い。
app/assets/stylesheets/***.css.scss の画像 url 指定
以下のように scss ファイルで CSS を書いていたのですが、これも動きません。
1 |
background-image: url("logo.png"); |
前述の config/environments/***.rb で assets のダイジェストが有効(config.assets.digest = true)になっている場合、assets(png, js, css ファイルなど)のURLにダイジェスト値が付加されます。実際のURLは、logo-*******.png とダイジェスト値が付加されるので、当然 logo.png というURLではアクセスできません。
対策としては、css.scss ファイル内では、image-url というメソッドを使ってURLを指定します。
1 |
background-image: image-url("logo.png"); |
こうすると、ダイジェスト値を付加したURLを指定してくれて、正常に動作する。
- – 参考リンク –
- Rails3.1から導入されたAsset Pipelineがよくわかってなかったから調べた – (゚∀゚)o彡 sasata299’s blog
- Rails4ではbackground:url(“assets/hoge.png”)の書き方は動かない話 – Qiita
- The Asset Pipeline — Ruby on Rails Guides
- Rails の関連記事
- RailsでMySQLパーティショニングのマイグレーション
- Rails ActiveRecordでdatetime型カラムのGROUP BY集計にタイムゾーンを考慮する
- RailsプラグインGemの作成方法、RSpecテストまで含めたrails pluginの作り方
- RailsでAMPに対応するgemをリリースしました
- Railsでrequest.urlとrequest.original_urlの違い
- Railsでwheneverによるcronバッチ処理
- Google AnalyticsのRails Turbolinks対応
- Railsアプリにソーシャル・シェアボタンを簡単設置
- Rails監視ツール用にErrbitをHerokuで運用
- Facebook APIバージョンのアップグレード手順(Rails OmniAuth)
Leave Your Message!