2016-10-20 6 views
0

以下は私のコードの一部です。背景画像がロードされていません。 '<%= asset_path( "images/bg1.jpg")%>'や "images/bg1.jpg"などのようなものを試しました。正しい方向に?デモからRails 4.2:JSの画像パスの問題

$(".login-bg").backstretch(["bg1.jpg","bg2.jpg","bg3.jpg"],{fade:1e3,duration:8e3}) 

答えて

0

$.backstretch([ 
     "http://dl.dropbox.com/u/515046/www/outside.jpg" 
    , "http://dl.dropbox.com/u/515046/www/garfield-interior.jpg" 
    , "http://dl.dropbox.com/u/515046/www/cheers.jpg" 
], {duration: 3000, fade: 750}); 

あなたがやっているすべての文字列を渡しているので、どうやら、あなたのコードは動作しません。代わりにあなたのやりたいことは、あなたのイメージに役立つルートを渡すことです。

これはjavascriptファイル内にあると仮定すると、あなたのrailsヘルパーを使用することはできません。あなたはこのケースで行う必要がありますすることです:ImagesController

  • ジャストオンラインクラウド上に写真をアップロードし、アレイ
  • 内のリンクを置く:

    • は、これらの画像を提供していますコントローラを構築しますあるいは、あなたができるべきことは、scriptをビュー(html.erb)の中に書くことです。そうすれば、この方法でレールヘルパーにアクセスできるはずです。次に、リンクを文字列として補間することができます。 "[#{image_path('bg1.jpg')}", "#{image_path('bg2.jpg')}"]

    +0

    私はこれらの画像を/assets/images/bg1.jpgに入れています。オンラインではない場所からアクセスしたいと思います。 – Talha

    +0

    次に、コントローラに自分の画像を提供したい、または絶対パスを含むようにルート配列が必要です'' my_app.com/assets/bg2.jpg ''' – Jeff

    0

    あなたが提供したコードすなわち

    は、ユーザーのマシン上で、ユーザーのブラウザから実行されるJavaScriptのです。そのため、アプリケーションサーバーのimagesディレクトリにあるファイルに直接アクセスすることはできません。

    あなたはJavascriptがアセットパイプラインによる展開のためにそれにRubyコードを埋め込むことができsomething.js.erbをファイル名場合は、のようなものは:

    $(".login-bg") 
        .backstretch(
        ["<%= image_url('bg1.jpg') %>", 
        "<%= image_url('bg2.jpg') %>", 
        "<%= image_url('bg3.jpg') %>" 
        ], 
        { fade: 1e3, duration: 8e3 } 
    ) 
    

    Railsのasset pipeline guideは、これらの機能を使用する方法に関する情報の優れた供給源であります。