2017-03-09 1 views
4

Ich versuche als Hintergrund bei /public/images/my-image.jpgVerwenden Sie ein Bild aus dem öffentlichen Ordner

befindet sich ein Bild zu setzen I

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

und

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

und

<body background="my-image.jpg"> 
versucht haben,

Aber ich habe immer ge t 404 (Not Found) auf der Chrome-Konsole. Irgendeine Idee warum?

Ich habe auch versucht, diese und fügte hinzu:

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

Aber nichts erscheint im Hintergrund der Seite.

Antwort

1

Wie ich es verstehe, haben Sie ein Problem bekommen Vermögenswerte in playframework zu erhalten. Folgen Sie der Dokumentation für Play-Framework für assets.

Um Assets aus dem öffentlichen Verzeichnis zu beziehen (wenn Sie die Standardrouten oder den Assets-Controller nicht geändert haben), müssen Sie den Pfad mit assets/ anstelle von public/ verwenden. Oder mehr vorzuziehen mit Reverse-Router. Im Play-2.5x in Ihrem Fall wäre es:

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

mittels Reverse-Routing oder

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

mit harten codierten Pfad.

1

Sie müssen in der routes Datei einen Datensatz haben

GET  /assets/*file    controllers.Assets.versioned(path="/public", file: Asset) 

Dann können Sie die Dateien im public Ordner mit dem wirbeln Helfer zugreifen:

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

Es wäre zu

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

Sie können es auch als statischen Text setzen.

Wenn Sie „Assets“ auf „öffentlich“ zu ändern, oder was auch immer, es ist nur in der routes Datei ändern:

GET  /public/*file    controllers.Assets.versioned(path="/public", file: Asset) 

dann von dem public Weg zugänglich seinen Ihr Vermögen würde, wie:

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

Dennoch wäre die @routes.Assets.versioned gleich sein:

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

Dies ist der Grund, warum @routes.Assets.versioned vorzuziehen ist.

Verwandte Themen