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,答案是,它不是硬编码的,我列出了一些这样的代码来解释逻辑<代码>文件夹路径存储在可编辑的
属性文件
中。我读过一些帖子,建议将用户文件保存在外部目录中,不在项目中,无论如何,谢谢你的建议。如果它的数据来自应用程序的用户,那么它肯定不在应用程序中。在文件系统、数据库或外部存储服务中。