Springboot 打包成Jar通过宝塔一键部署无法访问静态资源

需求是上传到服务器指定目录以后返回一个外部地址,在本地测试的时候没问题,本地进行jar包测试也正常,通过宝塔部署以后发现访问图片资源提示404,查看文件上传到服务器的位置没有问题,猜测是哪方面设置出现了问题。

因为我是通过一键部署服务器,外部通过nginx反向代理,猜测是 nginx的设置问题,进入宝塔网页对应的站点的nginx 配置文件。

针对图片等资源的反向代理设置是

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
        error_log off;
        access_log /dev/null;
    }

改为

location ~ .*\.(gif|jpg|jpeg|bmp|png|ico|txt|js|css)$
{
    proxy_pass "http://127.0.0.1:port";
    proxy_set_header Host;
    proxy_set_header X-Forwarded-For $remote_addr;
}

以后就可以正常访问,作为日记记录

### 解决Spring Boot应用打包JAR文件后部署到服务器出现404的问题 #### 1. 验证应用程序启动日志 确保应用程序功启动并监听正确的端口。可以通过查看控制台输出或日志文件来确认这一点。如果应用程序未能正确绑定到预期的URL路径,则可能会返回404错误。 ```bash java -jar myapp.jar --server.port=8080 ``` #### 2. 检查控制器映射 验证`@RestController`中的请求映射是否正确设置。根据提供的代码片段,GET请求应返回字符串"home"[^1]: ```java @RestController @EnableAutoConfiguration class Application extends SpringBootServletInitializer { @RequestMapping(method = RequestMethod.GET) public String get() { return "home"; } } ``` 注意方法签名应该包含`public`访问修饰符,并且建议指定完整的HTTP响应体而不是仅返回字符串。 #### 3. 修改默认页面位置 对于静态资源(HTML/CSS/JS),确保它们位于`src/main/resources/static`目录下。这样可以使得这些资源能够通过根路径访问而不会触发404错误。 #### 4. 自动配置检查 当Spring MVC JAR存在于类路径中时,Spring Boot会自动配置`DispatcherServlet`[^4]。因此无需手动注册此组件除非有特殊需求覆盖默认行为。 #### 5. 调整application.properties/yml配置 有时需要调整配置文件以适应不同的环境变量或外部依赖关系。例如更改服务端口号、上下文路径等参数可以帮助解决问题。 ```properties # application.properties example server.servlet.context-path=/myapp server.port=9090 ``` #### 6. 使用Maven插件简化部署流程 为了更方便地将Spring Boot应用程序部署至云平台如Azure,可利用官方支持的Maven插件实现自动化构建与发布过程[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值