Java 如何在SpringMVC中正确使用外部文件?
我无法访问未存储在Java 如何在SpringMVC中正确使用外部文件?,java,spring,file,spring-mvc,Java,Spring,File,Spring Mvc,我无法访问未存储在src/main/项目路径中的文件 项目结构: 现在我可以访问webapp/resources中的所有文件,但无法访问userResources文件夹中的文件 Spring resourceHandler: @EnableWebMvc @Configuration public class AppConfig extends WebMvcConfigurerAdapter { //some configs @Override public void addRe
src/main/
项目路径中的文件
项目结构:现在我可以访问
webapp/resources
中的所有文件,但无法访问userResources文件夹中的文件
Spring resourceHandler:@EnableWebMvc
@Configuration
public class AppConfig extends WebMvcConfigurerAdapter {
//some configs
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resource/**").addResourceLocations("/resources/");
registry.addResourceHandler("/vendors/**").addResourceLocations("/vendors/");
//this line won't work
registry.addResourceHandler("/userResources/**").addResourceLocations(
"home/pika/workspace/Spring/Bookmarks/userResources")
);
}
}
鉴于
<img class="fb-image-lg" src="/home/pika/workspace/Spring/Bookmarks/userResources/admin/profile/wallImage.png" alt="Profile wall image" align="left">
找不到图像,我尝试用“/userResources/admin/profile/wallImage.png”来更改src,但无论如何它都不起作用
<img class="fb-image-profile thumbnail" src="/resources/images/defaultProfilePhoto.png" alt="Profile face image" align="left">
找到图像。
我做错了什么
PS它可以帮助您理解项目结构资源位置
“home/pika/workspace/Spring/Bookmarks/userResources”
是在web应用程序中查找的,而不是在文件系统中查找的(就像其他以“/resources”开头的资源一样)。要以文件系统为目标,请使用文件URL:
file:/home/pika/workspace/Spring/Bookmarks/userResources
然而,这是一个糟糕的想法:部署该应用程序的web服务器与开发人员机器上的目录结构不同。您应该在webapp中包含这些资源。或者将这些图像存储在数据库中。或者在文件系统上,但至少在外部化的目录下,代码中没有这样硬编码。您的视图文件(html/jsp)在哪里?@RohitGaikwad webapp/WEB-INF/views/user/profile.jspThanks,答案是,它不是硬编码的,我列出了一些这样的代码来解释逻辑<代码>文件夹路径存储在可编辑的
属性文件
中。我读过一些帖子,建议将用户文件保存在外部目录中,不在项目中,无论如何,谢谢你的建议。如果它的数据来自应用程序的用户,那么它肯定不在应用程序中。在文件系统、数据库或外部存储服务中。