Yesodweb如何使用静态目录下的图片作为背景?

How to use image under static directory as background in Yesodweb?

Yesod 新手,我想知道如何使用目录 static/img 下的图像作为 div 的背景图像。我使用脚手架网站并尝试过:

.mydiv {
  background-image: url("static/img/bg.jpg");
}

不过看来url终于变成了http://myhost/tmp/static/img/bg.jpg

也许您使用的是 lucius 模板,真正的 css 文件是在运行时在临时位置 /tmp 自动生成的,并使用了相对路径。你需要的是type-safe URL,它在编译时验证URL有效性。

如果您使用的是脚手架模板,那么您可以根据 this

将其表示为 @{StaticR img_bg_jpg}

注意:对于旧版本的 yesod-static 和模板,可能需​​要 stack clean 才能反映静态目录中的更改。