2017-03-09 75 views
4

使用圖像我想設置爲背景位於/public/images/my-image.jpg從公用文件夾

圖像我已經試過

<body background="public/images/my-image.jpg"> 

<body background="images/my-image.jpg"> 

<body background="my-image.jpg"> 

但我總是ge在Chrome控制檯上輸入t 404 (Not Found)。任何想法爲什麼?

我也嘗試添加此:

<style> 
    body { 
     background-image: url("/public/images/my-image.jpg"); 
    } 
</style> 

但沒有出現在頁面的背景。

回答

1

據我瞭解,你有一個問題playframework獲得的資產。 請按照assets的播放框架文檔。

要從公共目錄獲取資產(如果您尚未更改默認路由或資產控制器),則需要使用assets/而不是public/的路徑。 或更優選使用反向路由器。在你的情況打2.5倍這將是:

<body background="@routes.Assets.versioned("images/my-image.jpg")">

使用反向路由或

<body background="assets/images/my-image.jpg">

硬編碼路徑。

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")"> 

你可以把它當作靜態文本爲好。

如果你想改變「資產」,以「公開」或什麼,只是改變它在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是首選的方式。