Da sind meine Routen. Der zweite ist kommentiert.Spiel-Framework. Routen. Fehler: "nicht genug Argumente für Methode bei ..."
GET /assets/*file controllers.Assets.at(path="/public", file)
#GET /partials/*file controllers.Assets.at(path="/public/partials", file)
(Was ich will, ist: zu meinen HTML-Dateien zu machen, die in "/public/partials"
Ordnern befinden über das Web, die gleiche Art und Weise verfügbar zu sein, wie es für assets
gemacht hat)
Sobald I uncomment 2. Zeile - wird es Fehlermeldungen erhalten aufgrund dieser Linie (aus meiner index.scala.html
):
<link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/main.css")">
Fehler ist wie hier:
not enough arguments for method at: (path: String, file: String)play.api.mvc.Call. Unspecified value parameter file.
F: Was ist los?
UPDATE:
anderen Worten: Ich möchte meine url kürzer machen, indem diese Zuordnung bereitstellt. Ansonsten muss ich diese URL verwenden: 'assets/partials/welcome.html'
anstelle von der (die ich gerne verwenden würde): 'partials/welcome.html'
.
Nur ein weiteres Mapping, das meine URLs kürzer machen würde.
Es macht Sinn, wenn ich diejenigen von JS Teil erreichen muss, es ist wie zwei Anwendungen in einem (1.play eins, 2. js eins), dort auch Routings, zwei Wurzeln. Für JS one nehme ich an, dass ich bereits in/public (oder in Assets) bin - das ist ein root für die js app.
Und ich frage mich, warum es nicht funktioniert.
Ich weiß, aber ich möchte meine URL kürzer machen, indem Sie diese Zuordnung. Ansonsten muss ich diese URL verwenden: 'assets/partials/welcome.html' anstelle von 'partials/welcome.html'. Nur ein weiteres Mapping, das meine URLs kürzer machen würde. Es macht Sinn, wenn ich diese von JS-Part erreichen muss, es ist wie zwei Anwendungen in einem (1.play eins, 2. js eins), dort auch Routings, zwei Wurzeln. Für JS one nehme ich an, dass ich bereits in/public (oder in Assets) bin - das ist ein root für die js app. Und ich fragte mich, warum es nicht funktioniert. – ses
Vielleicht ist Ihnen das schon klar, aber wenn Sie ein zweites Mapping für die Aktion Assets.at definieren, müssen Sie den Pfadparameter angeben, wenn Sie den Reverse-Router verwenden. Dies liegt daran, dass der Pfad jetzt mehrdeutig ist. Anstatt also @ routes.Assets.at ("stylesheets/main.css") zu verwenden, musst du @ routes.Assests.at ("/ public", "stylesheets/main.css") verwenden. – mantithetical
Ja. Aha. Ich würde besser eine Routendefinition verwenden und würde "leiden" mit einem weiteren Wort in der URL, als würde jeder Asset-URL einen weiteren Parameter hinzufügen. – ses