什么是 /tmp/jetty-docbase 目录用于

What is /tmp/jetty-docbase directory used for

我正在使用 SpringBoot 和嵌入式 Jetty。

我看到它创建了目录 /tmp/jetty-docbase...

这个目录有什么用?我怎样才能改变它的根路径?

这是文档根目录; Jetty 提供静态文件的位置(而不是 Spring MVC 的静态资源处理)。 Spring Boot 按顺序尝试以下位置,一旦找到匹配就停止搜索:

  1. 明确配置的位置(ConfigurableEmbeddedServletContainer.setDocumentRoot()
  2. .war 文件 if 运行 来自可执行文件 war
  3. 展开的根目录war(通过存在WEB-INF目录来识别)
  4. ./src/main/webapp
  5. ./public
  6. ./static
  7. $TMP_DIR/jetty-docbase

在您的情况下,它达到了 7。使用此位置是因为 Jetty 需要一些位置作为其文档根目录,即使它是空的。

如果您想明确控制用于文档根目录的位置,您可以通过声明一个 JettyEmbeddedServletContainerFactory bean 来配置它:

@Bean
public JettyEmbeddedServletContainerFactory jettyFactory() {
    JettyEmbeddedServletContainerFactory factory = new JettyEmbeddedServletContainerFactory();
    factory.setDocumentRoot(new File("custom/document/root"));
    return factory;
}

或者您可以创建文件夹 ./public 或 ./static 然后 springboot 永远不会为您创建临时 jetty-docbase 文件夹