使用公用文件夹中的图像

时间:2017-03-09 21:14:06

标签: html css scala playframework

我正在尝试将位于/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>

但页面背景中没有任何内容。

3 个答案:

答案 0 :(得分:1)

我认为在HTML5中不再支持它,尝试使用像body { background-image: url("gradient_bg.png"); }这样的css

font:https://www.w3schools.com/tags/att_body_background.asp

答案 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是优选方式的原因。