0

app/assets/images にすべての画像があり、app/assets/stylesheets にスタイルシートがあるかなりバニラの Rails アプリがあります。私のスタイルでは:

body
  background: url(/assets/bg.png)
  //background: image-path('bg.png')--well, same thing also doesn't work

この画像は表示されませんが=image_tag 'bg.png'、ビューにある場合は問題なく動作します(ただし、最後に生成されたタイムスタンプはありませんbg.png?<buncha#s>)。

に行くとlocalhost:3000/assets/bg.png、私のすべての画像と同様にそこにありdiag_bg.pngますErrno::ENOTDIR Not a directory - project/app/assets/images/diag_bg。画像があるかどうかに関係なく、そのようにアクセスできても、CSSの背景として使用することはできません。また、firebug は、CSS イメージに対する GET リクエストがまったくないことを示しています。

-ところで、アセットを手動でプリコンパイルしない限り、これらのイメージは public/images にありません (dev でプリコンパイルを false に設定したことはありません)。しかし、それらの画像は使用されていないようです...(ちょっと混乱しています)

また、私はこれらのメッセージを受け取ります。それが正常かどうかはわかりません (これまでのところ、logo_small.png は単一の =image_tag です):

Started GET "/assets/main.css?body=1" for 127.0.0.1 at 2012-04-22 14:31:33 -0700
Served asset /main.css - 304 Not Modified (0ms)
[2012-04-22 14:31:33] WARN  Could not determine content-length of response body. Set content-length of the response or set Response#chunked = true    

Started GET "/assets/logo_small.png" for 127.0.0.1 at 2012-04-22 14:31:33 -0700
Served asset /logo_small.png - 304 Not Modified (0ms)
[2012-04-22 14:31:33] WARN  Could not determine content-length of response body. Set content-length of the response or set Response#chunked = true

何か助けていただければ幸いです...私は資産にかなり不満を感じています。

4

1 に答える 1

2

以下を使用する必要があります。

background: image-url("bg.png")

image-urlヘルパーはあなたが望むものです。パスを引用する必要があり、前に置く必要はありません/assets。画像がサブフォルダーにある場合にのみ、フォルダーを含めます。たとえば、次のようになります。

app/assets/images/icons/favorite.png

...次のように参照されます。

background: image-url("icons/favorite.png")

詳細については、 https://github.com/rails/sass-railsを参照してください。

于 2012-04-22T22:35:30.600 に答える