我正在尝试将位于/public/images/my-image.jpg
我试过
<body background="public/images/my-image.jpg">
和
<body background="images/my-image.jpg">
和
<body background="my-image.jpg">
但我总是在Chrome控制台上获得404 (Not Found)
。知道为什么吗?
我也尝试添加这个:
<style>
body {
background-image: url("/public/images/my-image.jpg");
}
</style>
但页面背景中没有任何内容。
答案 0 :(得分:1)
我认为在HTML5中不再支持它,尝试使用像body {
background-image: url("gradient_bg.png");
}
这样的css
答案 1 :(得分:1)
据我所知,你在playframework中获取资产时遇到了问题。 请遵循assets的播放框架文档。
要从公共目录获取资源(如果您尚未更改默认路由或资产控制器),则需要使用assets/
而不是public/
的路径。
或者更优选使用反向路由器。在你的情况下玩2.5倍,它将是:
<body background="@routes.Assets.versioned("images/my-image.jpg")">
使用反向路由或
<body background="assets/images/my-image.jpg">
带有硬编码路径。
答案 2 :(得分:1)
您需要在routes
文件中添加记录
GET /assets/*file controllers.Assets.versioned(path="/public", file: Asset)
然后,您可以使用旋转助手访问public
文件夹中的文件:
<body background="@routes.Assets.versioned("images/my-image.jpg")">
它将被编译为
<body background="/assets/images/my-image.jpg")">
您也可以将其作为静态文本。
如果您想更改&#34;资产&#34;公共&#34;公共&#34;或者,只需在routes
文件中更改它:
GET /public/*file controllers.Assets.versioned(path="/public", file: Asset)
然后您的资源可以通过public
路径访问,例如:
<body background="/public/images/my-image.jpg")">
仍然,@routes.Assets.versioned
将是相同的:
<body background="@routes.Assets.versioned("images/my-image.jpg")">
这就是@routes.Assets.versioned
是优选方式的原因。