我需要帮助,我的Spring Boot 2 Server从第一个网站通过模板生成了其他网站(带有html,css ext ext的文件夹),但是这些网站/ html无法访问,Spring给我错误404,未找到。
我将在.jar中使用Maven构建项目
项目的总体架构是这样的:
---
|_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);
}
}
答案 0 :(得分:1)
如果Web服务器如您所说要生成网站,则应将文件保存在Spring Boot范围之外;只是在文件系统的文件夹中。一个例子可能是:
@Configuration
@EnableWebMvc
public class AppConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry
.addResourceHandler("/**")
.addResourceLocations("file:/var/www/websites/");
}
}
如果您拥有动态网站(您说它取决于用户),则可以在该方法内部获取系统中的所有用户,并在特定位置为其添加ResourceHandlers。