私は最近、Rails 4を使うためにRails 3.2.13アプリケーションの1つを書き直しました。私はRails 3アプリケーションでtwitter-bootstrap-rails 2.1.2を使用しました。 Rails 4のバージョンを書き直したところ、バージョン2.2.8を使い始めました。私はPhusion Passenger 4.0.20を自分の開発サーバーと運用サーバーで使用して、すべてのRailsアプリケーションをホストしています。Rails 4 - バックグラウンドイメージはLocalhostに現れますが、生産現場にはありません
私のRails 3アプリケーションでは、バックグラウンドイメージがローカルホストとプロダクションで正しく表示されていました。しかし、Rails 4と現在のバージョンのtwitter-bootstrap-railsを使ってアプリケーションを書き直したところ、バックグラウンドイメージは正しく表示されていましたが、プロダクションで展開すると背景イメージは表示されません。
私は次のCSSを試しましたが、背景イメージはlocalhostにしか表示されません。最初のステートメントは、ローカルホストとプロダクションのRails 3アプリケーションでうまく機能していたオリジナルのCSSコードです。ここで
background: url(/assets/landingpage2.jpg); width: 574px; height: 650px;
background: url(../assets/landingpage2.jpg); width: 574px; height: 650px;
background-image: url(../assets/landingpage2.jpg); width: 574px; height: 650px;
background-image: url("../assets/landingpage2.jpg"); width: 574px; height: 650px;
background-image: url("/assets/landingpage2.jpg"); width: 574px; height: 650px;
はもともと働いていた背景の文が含まれたクラスである:ここでは
.landing-cube-menu {
font-weight: bold;
font-size: 150%;
line-height: 100%;
background: url(/assets/landingpage2.jpg); width: 574px; height: 650px;
margin:0 auto;
}
は私が私の見解で使用していたコードです:
<div class="header-cube-menu" style="position: relative;">
<div class="header-store" style="position: absolute;">
<p><%= link_to "Online Store", store_path %></p>
</div>
<div class="header-about" style="position: absolute;">
<p><%= link_to "About", about_path %></p>
</div>
<div class="header-contact" style="position: absolute;">
<p><%= link_to "Contact", contact_path %></p>
</div>
<div class="header-verse" style="position: absolute;">
<p><a href="/verse">Bible<br>Verse</a></p>
</div>
<div class="header-app" style="position: absolute;">
<p><a href="/app">Mobile<br> App</a></p>
</div>
<div class="header-home" style="position: absolute;">
<p><a href="/home">Home<br> Page</a></p>
</div>
<div class="header-math" style="position: absolute;">
<p><a href="/math">The<br>Math</a></p>
</div>
<div class="header-vision" style="position: absolute;">
<p><a href="/vision"> Vision<br>Mission</a></p>
</div>
<div class="header-pendant" style="position: absolute;">
<p><a href="/pendant">Pendant<br> Desk Cross<br> and more</a></p>
</div>
<div class="header-puzzle" style="position: absolute;">
<p><a href="/puzzle">3D-Puzzle<br> eBook</a></p>
</div>
</div>
私がクリアしましたローカルホストと私のドメインの両方に対して、私のブラウザでキャッシュします。私はまだローカルホストではなく、ドメインでイメージを参照してください。私はMac Mini ServerでSafari、Chrome、Firefox、Operaの最新バージョンを使用しようとしました。それらのすべてが同じ結果を得る。
ローカルホストで背景イメージが表示されていない場合は、これを理解できます。私はlocalhostを使ってRails 4アプリケーションのテストを行い、それが本番環境で動作することを前提としていました。しかし、私はそれを展開した後、背景画像が欠落していた。これは私の本番サーバーと開発サーバーの両方で起こっています。画像ファイルは両方のサーバーのapp/assets/imagesにあります。
ここに投稿したオリジナルコードとすべての例は、画像がローカルホストに表示されるので正しいです。私はこの時点でどこをチェックするのか分からない。私はPassenger Google Groupにこれを掲載するかもしれません。これはローカルホストとプロダクションの間の唯一の他の変数です。特に私の開発サーバーを考慮してください。
更新:私はこれを投稿した後、他の可能性を試すことにしました。現在、localhostに対してバックグラウンドイメージが表示されなくなりました。私はこれに完全に迷っています。
ご協力いただければ幸いです。
UPDATE 2013年10月19日20:05 CDT GMT-5
私は私の.lessファイル内asset_urlソリューションを実装しようとしました。ここで私はすくい資産をやったときに私が得たエラーは以下のとおりです。プリコンパイルRAILS_ENV =生産コマンド
I, [2013-10-19T19:59:05.384878 #69440] INFO -- : Writing /Users/myusername/Sites/myrailsapp/public/assets/application-f8821f5601f793a09e9373fb397df1b1.js
rake aborted!
undefined method `[]' for nil:NilClass
(in /Users/myusername/Sites/hypercubeoflove_RoR_4/app/assets/stylesheets/application.css)
/Users/myusername/.rvm/gems/[email protected]/gems/sprockets-2.10.0/lib/sprockets/sass_functions.rb:63:in `sprockets_context'
/Users/myusername/.rvm/gems/[email protected]/gems/sass-rails-4.0.0/lib/sass/rails/helpers.rb:23:in `asset_url'
/Users/myusername/.rvm/gems/[email protected]/gems/sass-3.2.12/lib/sass/script/funcall.rb:112:in `_perform'
/Users/myusername/.rvm/gems/[email protected]/gems/sass-3.2.12/lib/sass/script/node.rb:40:in `perform'
/Users/myusername/.rvm/gems/[email protected]/gems/sass-3.2.12/lib/sass/tree/visitors/perform.rb:298:in `visit_prop'
/Users/myusername/.rvm/gems/[email protected]/gems/sass-3.2.12/lib/sass/tree/visitors/base.rb:37:in `visit'
/Users/myusername/.rvm/gems/[email protected]/gems/sass-3.2.12/lib/sass/tree/visitors/perform.rb:100:in `visit'
/Users/myusername/.rvm/gems/[email protected]/gems/sass-3.2.12/lib/sass/tree/visitors/base.rb:53:in `block in visit_children'
/Users/myusername/.rvm/gems/[email protected]/gems/sass-3.2.12/lib/sass/tree/visitors/base.rb:53:in `map'
/Users/myusername/.rvm/gems/[email protected]/gems/sass-3.2.12/lib/sass/tree/visitors/base.rb:53:in `visit_children'
/Users/myusername/.rvm/gems/[email protected]/gems/sass-3.2.12/lib/sass/tree/visitors/perform.rb:109:in `block in visit_children'
/Users/myusername/.rvm/gems/[email protected]/gems/sass-3.2.12/lib/sass/tree/visitors/perform.rb:121:in `with_environment'
/Users/myusername/.rvm/gems/[email protected]/gems/sass-3.2.12/lib/sass/tree/visitors/perform.rb:108:in `visit_children'
/Users/myusername/.rvm/gems/[email protected]/gems/sass-3.2.12/lib/sass/tree/visitors/base.rb:37:in `block in visit'
/Users/myusername/.rvm/gems/[email protected]/gems/sass-3.2.12/lib/sass/tree/visitors/perform.rb:320:in `visit_rule'
/Users/myusername/.rvm/gems/[email protected]/gems/sass-3.2.12/lib/sass/tree/visitors/base.rb:37:in `visit'
/Users/myusername/.rvm/gems/[email protected]/gems/sass-3.2.12/lib/sass/tree/visitors/perform.rb:100:in `visit'
/Users/myusername/.rvm/gems/[email protected]/gems/sass-3.2.12/lib/sass/tree/visitors/base.rb:53:in `block in visit_children'
/Users/myusername/.rvm/gems/[email protected]/gems/sass-3.2.12/lib/sass/tree/visitors/base.rb:53:in `map'
/Users/myusername/.rvm/gems/[email protected]/gems/sass-3.2.12/lib/sass/tree/visitors/base.rb:53:in `visit_children'
/Users/myusername/.rvm/gems/[email protected]/gems/sass-3.2.12/lib/sass/tree/visitors/perform.rb:109:in `block in visit_children'
/Users/myusername/.rvm/gems/[email protected]/gems/sass-3.2.12/lib/sass/tree/visitors/perform.rb:121:in `with_environment'
/Users/myusername/.rvm/gems/[email protected]/gems/sass-3.2.12/lib/sass/tree/visitors/perform.rb:108:in `visit_children'
/Users/myusername/.rvm/gems/[email protected]/gems/sass-3.2.12/lib/sass/tree/visitors/base.rb:37:in `block in visit'
/Users/myusername/.rvm/gems/[email protected]/gems/sass-3.2.12/lib/sass/tree/visitors/perform.rb:128:in `visit_root'
/Users/myusername/.rvm/gems/[email protected]/gems/sass-3.2.12/lib/sass/tree/visitors/base.rb:37:in `visit'
/Users/myusername/.rvm/gems/[email protected]/gems/sass-3.2.12/lib/sass/tree/visitors/perform.rb:100:in `visit'
/Users/myusername/.rvm/gems/[email protected]/gems/sass-3.2.12/lib/sass/tree/visitors/perform.rb:7:in `visit'
/Users/myusername/.rvm/gems/[email protected]/gems/sass-3.2.12/lib/sass/tree/root_node.rb:20:in `render'
/Users/myusername/.rvm/gems/[email protected]/gems/sass-3.2.12/lib/sass/engine.rb:315:in `_render'
/Users/myusername/.rvm/gems/[email protected]/gems/sass-3.2.12/lib/sass/engine.rb:262:in `render'
/Users/myusername/.rvm/gems/[email protected]/gems/sprockets-2.10.0/lib/sprockets/sass_compressor.rb:24:in `evaluate'
/Users/myusername/.rvm/gems/[email protected]/gems/tilt-1.4.1/lib/tilt/template.rb:103:in `render'
/Users/myusername/.rvm/gems/[email protected]/gems/sprockets-2.10.0/lib/sprockets/context.rb:197:in `block in evaluate'
/Users/myusername/.rvm/gems/[email protected]/gems/sprockets-2.10.0/lib/sprockets/context.rb:194:in `each'
/Users/myusername/.rvm/gems/[email protected]/gems/sprockets-2.10.0/lib/sprockets/context.rb:194:in `evaluate'
/Users/myusername/.rvm/gems/[email protected]/gems/sprockets-2.10.0/lib/sprockets/bundled_asset.rb:25:in `initialize'
/Users/myusername/.rvm/gems/[email protected]/gems/sprockets-2.10.0/lib/sprockets/base.rb:377:in `new'
/Users/myusername/.rvm/gems/[email protected]/gems/sprockets-2.10.0/lib/sprockets/base.rb:377:in `build_asset'
/Users/myusername/.rvm/gems/[email protected]/gems/sprockets-2.10.0/lib/sprockets/index.rb:94:in `block in build_asset'
/Users/myusername/.rvm/gems/[email protected]/gems/sprockets-2.10.0/lib/sprockets/caching.rb:58:in `cache_asset'
/Users/myusername/.rvm/gems/[email protected]/gems/sprockets-2.10.0/lib/sprockets/index.rb:93:in `build_asset'
/Users/myusername/.rvm/gems/[email protected]/gems/sprockets-2.10.0/lib/sprockets/base.rb:287:in `find_asset'
/Users/myusername/.rvm/gems/[email protected]/gems/sprockets-2.10.0/lib/sprockets/index.rb:61:in `find_asset'
/Users/myusername/.rvm/gems/[email protected]/gems/sprockets-2.10.0/lib/sprockets/manifest.rb:211:in `block in find_asset'
/Users/myusername/.rvm/gems/[email protected]/gems/sprockets-2.10.0/lib/sprockets/manifest.rb:257:in `benchmark'
/Users/myusername/.rvm/gems/[email protected]/gems/sprockets-2.10.0/lib/sprockets/manifest.rb:210:in `find_asset'
/Users/myusername/.rvm/gems/[email protected]/gems/sprockets-2.10.0/lib/sprockets/manifest.rb:119:in `block in compile'
/Users/myusername/.rvm/gems/[email protected]/gems/sprockets-2.10.0/lib/sprockets/manifest.rb:118:in `each'
/Users/myusername/.rvm/gems/[email protected]/gems/sprockets-2.10.0/lib/sprockets/manifest.rb:118:in `compile'
/Users/myusername/.rvm/gems/[email protected]/gems/sprockets-rails-2.0.0/lib/sprockets/rails/task.rb:60:in `block (3 levels) in define'
/Users/myusername/.rvm/gems/[email protected]/gems/sprockets-2.10.0/lib/rake/sprocketstask.rb:146:in `with_logger'
/Users/myusername/.rvm/gems/[email protected]/gems/sprockets-rails-2.0.0/lib/sprockets/rails/task.rb:59:in `block (2 levels) in define'
/Users/myusername/.rvm/gems/[email protected]/bin/ruby_noexec_wrapper:14:in `eval'
/Users/myusername/.rvm/gems/[email protected]/bin/ruby_noexec_wrapper:14:in `<main>'
Tasks: TOP => assets:precompile
(See full trace by running task with --trace)
あなたが../assetsを削除した場合:良い測定のために、その後(私の場合のユニコーンに)あなたのWeb/HTTPサーバーを再起動し
rake assets:precompile RAILS_ENV=production
:これらの線に沿って何かを実行する
男が言うように、最初に持っていた/ assetsに置き換え、サーバーを再起動して(キャッシュしている場合のみ)、ブラウザにキャッシュをダンプします。 – trh
ブラウザをリセットしてキャッシュをクリアし、Mac Mini Serverを再起動しました。画像は表示されません。おそらく、私がlocalhostを実行していたとき、私はいつもキャッシュを持っていたでしょう。今私はちょうどこの時点で背景画像を全く見ない。 –
ダイジェストを使用してアセットをコンパイルしていますか? 「はい」の場合は、「sprocket-rails」で問題が発生する可能性があります。 https://github.com/rails/sprockets-rails/issues/49 https://github.com/alexspeller/非愚かなダイジェスト資産 – swapab