hcqi2004 2021-10-23 10:17 采纳率: 0%
浏览 28

springboot静态资源访问返回404

img

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静态资源图片能正常访问

  • 写回答

1条回答 默认 最新

  • 关注

    是不是被拦截了,有没有设置跨域访问。

    评论

报告相同问题?

问题事件

  • 修改了问题 10月25日
  • 修改了问题 10月23日
  • 修改了问题 10月23日
  • 修改了问题 10月23日
  • 展开全部

悬赏问题

  • ¥15 WPF 大屏看板表格背景图片设置
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示