gpt4 book ai didi

java - 如何在 Spring Boot 中从/resources/提供 web 文件夹

转载 作者:行者123 更新时间:2023-11-30 05:33:53 24 4
gpt4 key购买 nike

我需要帮助,我的 Spring Boot 2 服务器从第一个 Web 生成其他网站(带有 html、css ext ext 的文件夹),但这些网站/html 无法访问,Spring 给我错误 404,未找到。

我将使用 Maven 在 .jar 中构建项目

该项目的架构是这样的:

---
|_folder (Directory with webapps generated, NOT DELIVERED)
. |_webapp1
. |_webapp2
|_src
. |_main
. . |_java
. . |_resources
. . . |_public (With first web)
. . . |_static (Template used to generate other web site, i simply copy this directoy in other directory, doing templateServices.copyDirectory("target/classes/static/", "folder/webapp1");
---

我尝试过此配置,但不起作用。

@Configuration
@EnableWebMvc
public class StaticResourceConfiguration implements WebMvcConfigurer {

private static final String[] CLASSPATH_RESOURCE_LOCATIONS = {
"classpath:/META-INF/resources/", "classpath:/resources/",
"classpath:/static/", "classpath:/public/", FileController.uploadingDir};

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**")
.addResourceLocations(CLASSPATH_RESOURCE_LOCATIONS);
}
}

最佳答案

如果Web服务器要生成网站,正如你所说,那么你应该将文件保存在Spring Boot范围之外;就在文件系统的文件夹中。一个例子可以是:

@Configuration
@EnableWebMvc
public class AppConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry
.addResourceHandler("/**")
.addResourceLocations("file:/var/www/websites/");
}
}

如果您有动态网站(您说这取决于用户),您可以在该方法内获取系统中的所有用户,并在特定位置为他们添加 ResourceHandler。

关于java - 如何在 Spring Boot 中从/resources/提供 web 文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57008440/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com