springboot静态资源访问路径

在springboot中约定大于配置,当然对静态资源也有默认的约定。

Spring Boot 默认将 /** 所有访问映射到以下目录:

classpath:/static
classpath:/public
classpath:/resources
classpath:/META-INF/resources
所以大家在访问静态资源时就不需要加/static,/public这些前缀了,人家springboot都给你默认映射了,你再添加不是画蛇添足吗?

下面我将通过一个小demo来给大家展示一下

项目路径:

static ——可以将css/js/images文件放到这里
templates —— 可以将网页文件放在这里

index.ftl

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
正确使用姿势:
<img src="/images/test.jpg">
错误使用姿势:
<img src="/static/images/test.jpg">
hello world
</body>
</html>

controller

@Controller
public class HelloController {
    
    @RequestMapping("/")
    public String index(ModelMap map, HttpServletRequest request) {
        return "index";
    }
}

在浏览器地址栏输入    http://localhost:8080/

下面就是显示的效果了(大家自己去意会)

总结:在springboot有些配置它已经默认配置好了,大家要注意这些默认配置,不要在这上面不停的采坑。

扩展

SpringBoot关于默认静态资源访问路径定义及自定义设置

如果您使用Spring Boot开发Web应用程序时,遇到无法访问static目录下的资源(如js、css、图片等),可以尝试以下几种解决方法:

  1. 确认static目录位置 在Spring Boot应用程序中,默认情况下,静态资源应该位于classpath:/static目录下。您可以在src/main/resources目录下创建一个static目录,并将您的静态资源放置其中。确保您的静态资源确实存储在该目录下。

  2. 确认静态资源是否被映射 Spring Boot会自动将classpath:/static目录下的静态资源映射到根路径下。例如,如果您的应用程序的上下文路径为“/”,则路径“/js/myscript.js”将映射到classpath:/static/js/myscript.js。如果您的静态资源没有被正确映射到根路径下,可以在应用程序的配置类中添加以下代码:

```

@Configuration
public class WebConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**")
                .addResourceLocations("classpath:/static/");
    }
}

```

该代码将将classpath:/static目录下的所有资源映射到根路径下。

        3. 确认静态资源是否被正确引用 确保您的HTML页面中引用的静态资源路径正确。如果您的静态资源存储在static目录的子目录中,则需要使用相对路径或绝对路径来引用它们。例如,如果您的HTML页面在templates目录下,而静态资源在static/js目录下,则可以在HTML页面中使用以下代码引用脚本:

```

<script src="../static/js/myscript.js"></script>

```

上述方法可以帮助您解决Spring Boot无法访问static目录下的资源的问题。如果您仍然遇到问题,请检查应用程序的日志文件,以查看是否有其他异常信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值