Spring Boot访问静态资源css/js,你真的懂了吗

下面是完整攻略:

Spring Boot访问静态资源

什么是静态资源

静态资源(Static Resources),通常指不需要动态生成的文件,比如HTML、CSS、JS、图片等。静态资源一般存放在Web应用的WebRoot目录下。

Spring Boot静态资源访问配置

Spring Boot使用默认的静态资源路径,如下:

classpath:/META-INF/resources/
classpath:/resources/
classpath:/static/
classpath:/public/

这些默认的静态资源路径依次对应的是:

  1. Spring Boot内置的JAR包中的META-INF/resources目录;
  2. 项目根路径下的resources目录;
  3. 项目根路径下的static目录;
  4. 项目根路径下的public目录。

如果项目中需要访问自定义的静态资源,可以在application.properties文件中进行配置,如下:

# 添加自定义的静态资源路径
spring.resources.static-locations=classpath:/static/,file:/opt/static/

上述配置表示访问静态资源时,会先访问项目根路径下的static目录,如果没有找到,则会访问/opt/static/目录。

访问静态资源

在Spring Boot中访问静态资源很简单,只需要在HTML页面中添加相应的链接即可。

以访问CSS文件为例,可以在HTML页面中添加以下代码:

<link rel="stylesheet" type="text/css" href="/css/style.css">

假设项目根路径下有一个名为style.css的文件夹,上面代码中href属性的值为/css/style.css,其中前面的"/"表示项目根路径,后面的"/css/style.css"表示相对于项目根路径下的css文件夹。如果没有在application.properties文件中进行配置,则默认访问项目根路径下的static目录。

除了在HTML页面中添加URL链接,还可以在Spring MVC的控制器方法上加上@RequestMapping注解,来访问静态资源:

@RequestMapping(value = "/static/img/{imgName}", method = RequestMethod.GET)
public void showImage(@PathVariable("imgName") String imgName, HttpServletResponse response) {
    // 读取图片文件
    byte[] data = readFile("/static/img/" + imgName);
    try {
        // 写入响应流中
        response.getOutputStream.write(data);
        response.getOutputStream.flush();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

上述代码中,@RequestMapping指定了请求的路径为/static/img/{imgName},其中{imgName}为参数,用于匹配URL中的文件名。在方法体中,首先通过readFile方法,读取了项目根路径下的static/img目录下的imgName文件的二进制内容,并写入响应流中。这样,用户在访问时就会得到相应的图片。

示例

下面是两个示例:

示例一:访问HTML静态文件

  1. 在项目根路径下创建一个名为static的目录;
  2. 在static目录下创建一个名为index.html的文件;
  3. 在index.html文件中添加以下内容:

```



Home Page

Home Page


```

  1. 启动Spring Boot应用,访问http://localhost:8080/index.html,即可看到页面上显示“Home Page”。

示例二:访问图片资源

  1. 在项目根路径下创建一个名为static的目录;
  2. 在static目录下创建一个名为images的目录;
  3. 在images目录下添加一张名为logo.png的图片;
  4. 在控制器中添加以下代码:

@RequestMapping(value = "/logo", method = RequestMethod.GET)
public void showImage(HttpServletResponse response) {
// 读取图片文件
byte[] data = readFile("/static/images/logo.png");
try {
// 设置响应类型为图片
response.setContentType("image/png");
// 写入响应流中
response.getOutputStream.write(data);
response.getOutputStream.flush();
} catch (IOException e) {
e.printStackTrace();
}
}

  1. 启动Spring Boot应用,访问http://localhost:8080/logo,即可看到页面上显示名为“logo”的图片。

这两个示例展示了如何访问不同类型的静态资源,建立了基本的静态资源访问机制。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring Boot访问静态资源css/js,你真的懂了吗 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • AE怎么制作光线粒子沿路径移动的开场动画?

    制作光线粒子沿路径移动的开场动画的具体步骤如下: 1. 准备工作 在AE中创建一个新项目,并添加需要用到的素材,如背景、文字、LOGO等元素。 在项目中选择Solid Layer(创建一个纯色图层),可以用于添加光线粒子的效果。 在AE中安装Trapcode Particular插件(该插件可以生成复杂的粒子效果)。 2. 添加粒子效果 选中Solid La…

    other 2023年6月27日
    00
  • dns服务器地址大全 全国主要省份电信/网通/铁通dns地址汇总

    DNS服务器地址大全 全国主要省份电信/网通/铁通DNS地址汇总攻略 介绍 DNS(Domain Name System)是互联网中用于将域名转换为IP地址的系统。在访问网站或发送电子邮件时,计算机需要通过DNS服务器来解析域名。本攻略将提供全国主要省份电信、网通和铁通的DNS服务器地址,以便用户在需要时进行设置。 DNS服务器地址列表 电信DNS服务器地址…

    other 2023年7月30日
    00
  • 关于web服务:httpget请求的最大长度?

    关于Web服务: HTTP GET请求的最大长度 在Web服务中,HTTP GET请求是一种常见的请求类型。但是,GET请求的URL长度是有限制的。以下是关于Web服务: HTTP GET请求的最大长度的完整攻略,包括常见问题和两个示例说明。 常见问题 1. HTTP GET请求的最大长度是多少? HTTP GET请求的最大长度取决于浏览器和服务器的限制。通…

    other 2023年5月9日
    00
  • ubuntu查看当前时间命令

    在Ubuntu中,可以使用date命令来查看当前时间。以下是详细的攻略,包括两个示例说明。 步骤1:打开终端 在Ubuntu中,可以通过按下Ctrl + Alt + T捷键来打开终端,或者通过在应用程序菜单中搜索“终端”来打开终端。 步骤2:输入date命令 在终端中,输入以下命令来查看当前时间: date 该命令将输出当前日期和时间,格式为“星期 月 日 …

    other 2023年5月6日
    00
  • 升级macOS Big Sur 差点丢了我多年的珍藏文件(夹)!!!

    升级macOS Big Sur 差点丢了我多年的珍藏文件(夹)!!! 最近,我决定升级我的Mac电脑到最新的macOS Big Sur版本。不过,在升级过程中,我几乎把多年珍藏的文件和文件夹全都丢失了! 由于我平时非常注意备份,因此在升级之前,我再次进行了备份。然而,当我在安装过程中重新设置我的Mac时,我意外地发现了一些文件和文件夹。原来,在我的备份磁盘上…

    其他 2023年3月28日
    00
  • JavaScript继承模式粗探

    JavaScript继承模式粗探 在 JavaScript 中实现继承的方式有很多,本文将介绍五种不同的继承模式,并通过示例代码进行说明和比较。 1. 原型链继承 原型链继承是最常见的一种继承方式,其基本思想是通过将子类的原型设为父类的实例实现继承。 function Parent() { this.name = ‘parent’; this.say = f…

    other 2023年6月26日
    00
  • 【python基础】字符串方法汇总

    【python基础】字符串方法汇总 Python是著名的脚本语言之一,具有易读性、简洁性和易上手的特点。字符串(string)是Python的常见数据类型之一,在日常的编程实践中也是经常使用的。Python提供了丰富的字符串处理方法,让我们能够灵活地处理字符串,高效地完成任务。下面是我们经常使用的一些字符串方法的汇总。 1. 字符串长度 len() len(…

    其他 2023年3月28日
    00
  • Ubuntu系统下用命令行快速打开各类型文件的方法(xdg-open)

    打开文件可以通过双击图形界面中的文件图标实现,但对于一些命令行用户而言,他们可能更喜欢使用命令行的方式来进行操作。在Ubuntu系统中,我们可以使用xdg-open命令快速打开各种类型文件。 xdg-open命令介绍 xdg-open命令是一个在Linux环境中用于打开文件、文件夹、URL等的命令。该命令通常通过调用默认文件管理器或浏览器的方式实现打开操作。…

    other 2023年6月26日
    00
合作推广
合作推广
分享本页
返回顶部