6秒ごとに背景画像を変更しようとしていますが、これは常に404エラーです。
たとえば、以下はJSコンソールに表示されます
http://localhost:3000/app/assets/images/ggb_mist.png 404 (Not Found)
これを簡単にするために、私はbackground-color
を試して、それが機能していることを確認しました。下記参照:
$(document).ready(function() {
function testing() {
$('.holder').css('background-color', 'red');
};
});
上記は動作します。今度はapp/assets/images/imagefilenamehere.png
にある画像で同じことを実行しようとすると、常に404エラーが発生します。
filenamehere.png
../assets/images/filenamehere.png
../app/assets/images/filenamehere.png
../images/filenamehere.png
以下が機能しないのはなぜですか?
$('.holder').css({'backgroundImage':'../assets/images/filenamehere.png'});
この件に関するご意見をお待ちしています。
これは私の問題を解決しました: guides.rubyonrails.org/asset_pipeline.htmlのセクション2.3.1
$('.holder').css("background-image","url(<%= asset_path('tree-rays.jpg') %>)");
ご了承ください tree-rays.jpg
はapp/assets/images(Rails 4アプリケーション)にあります。
.erb
(組み込みRuby)拡張機能を使用すると、.js
ファイルでRailsパスヘルパーを許可できます。
1)画像パスヘルパーを使用して、元のファイル(my_script.js
)をmy_script.js.erb
として保存します。
$('.holder').css({"background-image":"<%= asset_path('filenamehere.png') %>"});
また、アセットパイプラインが正しく設定されていることを確認してください。
Rails Asset Pipeline guide( http://guides.rubyonrails.org/asset_pipeline.html )から
2)あなたのJavaScriptファイル(my_script.js.erb
)は中にあります:
app/assets/javascripts/
lib/assets/javascripts/
vendor/assets/javascripts/
vendor/assets/somepackage/
3)ファイルがマニフェストで参照されている(おそらくapp/assets/javascripts/application.js
):
//= require my_script