2014-01-09 5 views

Antwort

7

Ja, es ist möglich. Deklarieren Sie Ihre Entwicklungsrouten in conf/routes, aber geben Sie Ihre Produktionsrouten in conf/prod.routes an. Dann eine Produktionskonfigurationsdatei haben, conf/prod.conf und setzen diese in ihm:

include "application.conf" 

application.router = "prod.Routes" 

Nun, wenn Sie Ihre Anwendung in der Produktion starten, verwenden Sie einfach:

path/to/myapp/bin/myapp -Dconfig.resource=prod.conf -Dhttp.port=... 
+0

Hallo James, danke für Ihre Antwort, die gut funktioniert. – reen

+1

Ist es möglich, diese Methode zu verwenden, wenn beide Routendateien einen Pfad zu derselben Methode definieren (z. B. 'GET/controllers.News.foo()')? Ich bekomme ein 'ReverseNews ist bereits definiert als Klasse ReverseNews' Kompilierungsfehler ... –

0

Nicht aus dem Kasten heraus. Aber hier gibt es zwei Ideen, wie man die gleiche Funktionalität erreichen könnten:

  • eine dünne Hülle um Assets.at schreiben, die an der aktuellen env sieht und behandelt es anders, und dann nur Assets.at mit dem modifizierten Aufruf Pfad
  • Überschreibung wie Routing im Bereich Global geschehen ist, ist dies ein wenig schwer zu tun, wenn Sie die Routen DSL sowohl für prod und dev Routen-Datei behalten möchten, wie Sie sie
zusammengestellt hätte, um herauszufinden, zu erhalten
1

Die Lösung oben funktioniert gut, aber Mittel Du verdoppelst Routen für zB nicht-statische Ressourcen in Ihren routes und prod.routes Dateien.

Wenn Sie eine einzelne Routen-Datei behalten möchten, können Sie die Straße hinuntergehen, die johanandren vorschlägt. Ich benutze diese Methode ziemlich erfolgreich, und habe einen Schlüssel für diese Methode bei https://gist.github.com/drcharris/2e3518b212adfa1b6a7f

+0

Aktualisierte Version von ConfigurableAssets für PlayFramework 2.5 https://gist.github.com/cessationoftime/b304c13f810f9d52e32fbf6c778af3d9 – cessationoftime

Verwandte Themen