Spark を実行する次の単純なメイン クラスがあります。
Spark.port(4570);
final Configuration configuration = new Configuration(new Version(2, 3, 0));
configuration.setClassForTemplateLoading(SparkHandler.class, "/");
Spark.staticFileLocation("/public");
Spark.get("/", (request, response) -> {
// read patterns
// attributes for web-interface.
Map<String, Object> attributes = new HashMap<>();
attributes.put("data", "someData");
return new ModelAndView(attributes, "timeline.ftl");
} , new FreeMarkerEngine());
すべてうまくいきます。http://localhost:4570/にアクセスすると、要求された Web ページが表示されました。
get ステートメントのパスを次のように変更しますが/a/b/c
、まったく同じコードを実行します。
Spark.port(4570);
final Configuration configuration = new Configuration(new Version(2, 3, 0));
configuration.setClassForTemplateLoading(SparkHandler.class, "/");
Spark.staticFileLocation("/public");
Spark.get("/a/b/c", (request, response) -> {
// read patterns
// attributes for web-interface.
Map<String, Object> attributes = new HashMap<>();
attributes.put("data", "someData");
return new ModelAndView(attributes, "timeline.ftl");
} , new FreeMarkerEngine());
たとえばhttp://localhost:4570/a/b/cにアクセスすると、以前は見つかっていた多くのリソースが利用できなくなったというメッセージが返されます。例えば
INFO 28/07/16 14:45:03: 要求されたルート [/a/b/vis/vis.js] が Spark にマップされていません
ただし、これは正確には /public/vis/vis.js の場所にあります。
その get コマンドは私の静的ディレクトリを変更しますか? それとも、私が理解できない何かがここで起こっています:)。