Wo kann ich Dateien ablegen, wenn Sie versuchen, statische Dateien mit dem Spark-Web-Framework bereitzustellen?
Ich konnte nichts online finden - ich habe den Verdacht, dass ich nichts über Klassenpfade, relative Pfade usw. für ein Eclipse- und Java-Projekt verstehe.
Dieser Absatz über statische Dateien in Spark verweist auf /public
, aber ich habe keine Ahnung, wo sich das befinden würde. Mit Windows werden Eclipse Luna und mein Projekt in Maven konvertiert.
Ich habe versucht, sich den Code auf GitHub anzusehen, aber ich bin ein bisschen aus meiner Tiefe heraus und versuche, ihn zu finden.
Zuerst müssen Sie Spark mitteilen, wo nach den statischen Dateien gesucht werden soll:
Spark.staticFiles.location("/public");
In Spark-Versionen vor 2.5 sollten Sie Folgendes verwenden:
Spark.staticFileLocation("/public");
Dann sollte Ihr Projekt einen public
-Ordner wie den Ressourcenordner haben
/src/main/resources/public/style.css
Zum Beispiel habe ich dort eine style.css
-Datei hinzugefügt, so dass Sie darauf wie folgt zugreifen sollten:
http://localhost:4567/style.css
Wenn Sie einen Ordner außerhalb des Klassenpfads bereitstellen möchten, sollten Sie verwenden
Spark.staticFiles.externalLocation("/path/to/dir");
In Spark-Versionen vor 2.5 sollten Sie Folgendes verwenden:
Spark.externalStaticFileLocation("/path/to/dir");
Ich stelle meine Stylesheets wie folgt unter meinen statischen Inhalt:
staticFileLocation( "/web" );
/web/
|-- index.html
+-- styles/
+
+--- default.css
Und die index.html
... <link href="styles/default.css" rel="stylesheet" type="text/css" />
Ich habe auch andere HTML-Seiten als mit Freemarker erstellt. Sie sammeln nur den Pfad:
Zeigt an, wie der CSS-Index es abruft.
Quelle: https://groups.google.com/d/msg/sparkjava/5vMuK_5GEBU/vh_jHra75u0J
Klicken Sie mit der rechten Maustaste auf Ihr Projekt in Eclipse, und wählen Sie Neu erstellen -> Paket. Geben Sie dem neuen Paket einen Namen usw.
Fügen Sie Ihrem Paket Ihre statischen Ressourcen hinzu, damit wir sicher sind, dass sie sich unter Ihrem Klassenpfad befinden.
src/main/resources
ab.Spark.staticFileLocation("/public");
durch Spark.staticFileLocation("public");