Um eine saubere Verzeichnisstruktur zu erhalten, möchte ich einen zusätzlichen Asset-Ordner veröffentlichen. Ich habe ein Verzeichnis 'Assets' in meinem Projektordner erstellt, einen 'PictureAssets' Controller geschrieben, der fast identisch mit 'Controller.Assets' ist, 'Assets' zu den playAssetsDirectories in der Datei build.sbt hinzugefügt und einige Routeneinträge ohne verfolgt Erfolg.Spielen: zusätzliches öffentliches Verzeichnis/Assets
PictureAssets:
package controllers
import play.api.mvc.Action
import play.api.mvc.AnyContent
object PictureAssets extends AssetsBuilder {
def create : Action[AnyContent] = Action {
Ok(views.html.fileUploadForm())
}
}
build.sbt
playAssetsDirectories <+= baseDirectory/"assets"
Routen
# GET /file controllers.PictureAssets.at(path="/assets", file="MM1.png")
GET /datei/*file controllers.PictureAssets.at(path="/assets", file)
# GET /datei/*file controllers.Assets.at(path="/assets", file)
Wenn ich versuche, auf die URL zugreifen, entweder nichts angezeigt wird, oder der Fehler ‚Das Bild http: 9000 // localhost/datei/MM1.png kann nicht angezeigt werden, weil es Fehler enthält 'wird angezeigt oder die CSS-Referenz s, die von den 'controller.Assets' gehandhabt werden, funktionieren nicht mehr.
Was fehlt mir?
danke, ich musste 'val fileToServe = neue Datei (Play.application.getFile (rootPath), Datei)' für einen relativen Pfad, in meinem Fall. –
@Peter Ich portierte dies nach Java und es funktionierte :) Danke. Würde das skalieren wenn ich eine große Anzahl von Bildern im Ordner auf dem absoluten Pfad habe? – ajay