SparkJava 静态文件文件夹中的子文件夹未映射

问题描述

我正在 Angular 中做一个 GUI,它调用用 SparkJava (JavaSE) 编写的 REST-api。一切都将在同一台机器上运行。 GUI 最初是用 Swing 编写的,但我现在用 Angular 重写它以获得更现代的触感。

问题:

当应用程序启动时,一切似乎都按预期加载。当我在浏览器中打开网页时,我在 Java 控制台中收到一条 INFO 消息,指出 spark.http.matching.MatcherFilter - The requested route [/sv/assets/images/image1.png] has not been mapped in Spark for Accept: [image/webp,*/*] 以及其他类似消息。

Angular 文件位于 src/main/resources/public。有几个包含内容的子文件夹,请参阅屏幕截图。

后端已正常运行,但前端文件无法在浏览器中正确加载。 HTML/JS/CSS 似乎已正确加载,但无法加载 assets 文件夹中的图像和其他文件

这能解决吗?还是必须将所有文件都放在根目录中?我发现 SparkJava 中的所有静态文件都不能放在同一个文件夹中(也就是说,没有子文件夹)。

我的设置:

Spark.port(4567);
Spark.staticFiles.location("/public");

// simple rest API to serve some data
Spark.get("/labels/getall","application/json",new Route() {
  @Override
  public Object handle(Request rqst,spark.Response rspns) throws Exception {
    Labels l = LabelReader.getLabels();
    Gson gson = new Gson();
    return gson.toJson(l);
  }
});

文件树:

File tree

Java 控制台消息

Java console messages

浏览器输出

Browser output

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)