在Spring MVC中如何正确使用外部文件?
我无法访问未存储在src/main/
项目路径文件在Spring MVC中如何正确使用外部文件?
现在我可以从webapp/resources
访问所有文件,但不能从userResources文件夹
春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">
没有找到图片,我试图改变SRC着: “/userResources/admin/profile/wallImage.png” 反正这是行不通的
<img class="fb-image-profile thumbnail" src="/resources/images/defaultProfilePhoto.png" alt="Profile face image" align="left">
找到的图像。
我做错了什么?
PSGithub repo可能它可以帮助你了解项目结构
位置"home/pika/workspace/Spring/Bookmarks/userResources"
被看为Web应用程序中,而不是文件系统(就像其他以“/资源”)的资源。要针对文件系统,使用文件网址:
file:/home/pika/workspace/Spring/Bookmarks/userResources
然而,这是一个可怕的想法:在这里您可以部署应用程序的Web服务器不具有相同的目录结构,你对你的一个开发者机器。你应该在webapp中包含这些资源。或者将这些图像存储在数据库中。或者在文件系统上,但至少在基于外部的目录下,在代码中不会像这样硬编码。
谢谢,为了回答,它没有编码,我列出了几个这样的代码来解释逻辑。 “文件夹路径”存储在可编辑的“属性文件”中。我阅读了一些文章,建议将用户文件保存在外部目录中,不在项目中,无论如何感谢您的建议 – GVArt
如果数据来自应用程序的用户,那么它肯定应该不在应用程序中。在文件系统上,在数据库中或在外部存储服务中。 –
您的视图文件(html/jsp)位于何处? –
@RohitGaikwad webapp/WEB-INF/views/user/profile.jsp – GVArt