Just looking at this, I would have to guess that setting the background-image property doesn't seem to work because the <div> has no content, thus has no size. So there is a background, but the <div> itself is not really visible. Have you tried setting the width/height of the <div> as well when setting the background-image?
Alternatively, you could add inside of the <div>. Since it's a block element it will fill the width of its parent, but with nothing inside it there is no height.