SpringBoot配置静态资源访问办法

    SpringBoot如果是web项目,其实默认静态资源是放在resources/static/目录下的。这个静态资源其实隐含了一个配置就是spring.mvc.static-path-pattern: /**,如下所示,我们在application.yml中进行配置,还在敲spring.mvc.static的时候,yml自动提示就已经出来了,而且给了默认值:/**。

    这种方式适合传统的前后端不分离的时候的java web项目,里面的静态资源比如图片,样式,脚本等等可以放在这里,页面加载的时候直接挂在页面上。

    还有一种也是通过配置静态资源的方式,就是设置resources.static-locations,这个根据springboot版本不同,有的叫spring.resources.static-locations,有的叫spring.web.resources.static-locations。需要注意一下。

    这个配置也有一个地方需要注意,位置指定的是文件系统的一个路径,这个路径后面需要带上文件分隔符。

spring:
  web:
    resources:
      static-locations:
        - file:e:/tmp/

   我们系统路径下的文件:

 

   

### Spring Boot 应用启动后无法通过 `localhost` 访问的原因及解决方案 #### 一、可能原因分析 1. **控制器未被正确扫描到 IOC 容器** 如果项目的 Controller 层位于主程序入口类所在包之外,则由于默认的组件扫描机制仅扫描主程序入口类所在的包及其子包,可能导致 Controller 类未能加载至 IOC 容器中。这将使得即使 Tomcat 成功启动,也无法找到对应的请求映射地址[^4]。 2. **资源配置错误** 配置文件中的某些属性设置不当也可能引发此类问题。例如,在 `application.properties` 或 `application.yml` 文件中误配了资源路径或其他关键参数,可能会干扰正常的服务运行逻辑[^3]。 3. **端口占用或服务监听失败** 尽管日志显示 Tomcat 启动成功,但如果实际使用的端口号已被其他进程占用或者防火墙阻止外部连接,同样会造成客户端访问失败的情况。此外,默认情况下 Spring Boot 的嵌入式服务器只会绑定到 IPv6 地址;如果操作系统优先使用 IPv4 幞而没有相应调整网络接口配置的话,也有可能影响正常的 HTTP 请求处理过程[^1]。 4. **静态资源缺失或模板引擎未启用** 对于基于 Thymeleaf 等前端渲染技术构建的应用来说,如果没有正确放置 HTML 页面或者其他必要的静态资产(CSS, JS),当尝试打开这些页面时就会收到 404 错误提示。另外需要注意的是,部分场景下还需要显式声明所采用的具体视图解析策略以便框架能够识别并返回期望的内容类型给浏览器展示出来[^2]。 #### 二、具体解决办法 针对上述提到的各种可能性提供如下几种应对措施: - **扩展组件扫描范围** 修改 @SpringBootApplication 注解上的 basePackages 参数来指定额外需要纳入考虑的目标目录位置,从而确保所有的业务逻辑单元都能够得到有效的初始化和服务暴露支持。 ```java @SpringBootApplication(scanBasePackages={"com.example.demo", "other.package"}) public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` - **修正配置项设定** 检查 application.* 文件里是否存在不合理之处,并参照官方文档重新定义合适的键值组合以满足特定需求环境的要求。比如对于国际化消息源管理可以按照下面的方式来进行标准化表述: ```properties spring.messages.basename=i18n/messages ``` - **验证端口可用性和适配协议版本** 利用 netstat 工具查看是否有冲突现象发生以及确认本机是否允许来自任意 IP 的入站流量到达指定端点之上。必要时候可以通过修改 server.address 和 server.port 来改变默认行为适应不同部署条件下的实际情况。 ```yaml server: port: 8090 address: 0.0.0.0 ``` - **补充完善视图解析链条** 当涉及到动态网页生成的时候记得引入相应的依赖库并且激活关联的功能模块开关选项。同时也要保证所有需要用到的数据模型对象都已提前准备好并通过 ModelMap 进行传递共享。 ```xml <!-- pom.xml --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luffy5459

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值