linux服务器操作及文件目录如上图
一、问题说明:
1.1、linux上访问静态资源图片执行命令
curl http://127.0.0.1:8095/image/admin_20211019_123400.jpg
返回:
{"timestamp":1634918199941,"status":404,"error":"Not Found","message":"","path":"/image/admin_20211019_123400.jpg"}[root@ebs-101072 personManageUserFile]#
1.2、同时查看日志服务器日志
[http-nio-8095-exec-3]org.springframework.web.servlet.PageNotFound.noHandlerFound:1251
-No mapping for GET /image/admin_20211019_123400.jpg
二、项目说明
2.1、springboot项目中已添加静态资源访问,代码如下
import com.haopin.personmanage.util.CommDefine;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import java.io.File;
@Configuration
public class MyMvcConfig extends WebMvcConfigurationSupport {
@Autowired
private CommDefine commDefine;
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
String userDir= System.getProperty("user.dir");
String resoucesDir=commDefine.getUserPicDir()+ File.separator;
registry.addResourceHandler("/image/**").addResourceLocations("file:"+resoucesDir);
}
}
2.2、springboot项目中commDefine.java代码如下
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class CommDefine {
@Value("${resourcesUser}")
private String userPicDir;
public String getUserPicDir() {
return userPicDir;
}
public void setUserPicDir(String userPicDir) {
this.userPicDir = userPicDir;
}
}
2.3、application.properties文件内容如下
server.port=8095
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/person_manage?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
spring.datasource.username=隐藏
spring.datasource.password=隐藏
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#告诉mybatis去哪里扫描mapper.xml
mybatis.mapperLocations=classpath:mapper/*Mapper.xml
#资源路径
resourcesUser=UserFile
三、补充说明
3.1、linux上执行如下命令curl http://127.0.0.1:8095/personmanage/getUserById?id=60015,返回正常。
3.2、项目发布成jar包,启动服务的命令为:nohup java -jar personmanage-1.1.2.jar >log.txt &
3.3、本地win7静态资源图片能正常访问