我有以下执行 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/时,我得到了请求的网页!
我现在将 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 命令会改变我的静态目录吗?或者这里发生了什么我只是不明白的事情:)。