迷茫了?

简介: 迷茫了?

发现最近不在状态了, 很多问题一涌而现。 有些问题还真难搞, 像一些文件在本地操作挺好的。但要用web端去访问的时候, 就不对劲了。总是有些奇怪的问题。 明明是配置了对外开放的文件访问路径,但就是访问不了文件。哎,是真的迷。还是得看看路径在项目访问的规则。  对于这种问题真棘手。关于springboot 对于文件的开放路径,不拦截直接给前端访问的功能。我看很多都说在application.yml 配置下路径就好了。

springboot配置静态资源访问路径

其实在springboot中静态资源的映射文件是在resources目录下的static文件夹,springboot推荐我们将静态资源放在static文件夹下,因为默认配置就是classpath:/static/但是之前我们都习惯将静态资源文件放在webapp下面,特别是打war包的项目,但是如果我们直接创建一个webapp文件目录,将静态资源放进去,在项目启动的时候我们是访问不到的,所以我们要进行一些项目配置。

改变springboot项目静态资源文件访问目录的方式有两种,一种是直接在配置文件中进行设置,另一种是我们编写一个配置类,继承org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter

或者org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport

并重写addResourceHandlers(ResourceHandlerRegistry registry)方法,其实addResourceHandlers(ResourceHandlerRegistry registry)方法就是个空方法。


第一种配置文件里配置

#静态资源访问路径
spring.mvc.static-path-pattern=/**
#静态资源映射路径
spring.resources.static-locations=classpath:/

第二种:通过编程进行设置

@Configuration
public class MvcConfig extends WebMvcConfigurerAdapter {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
     // 这里之所以多了一"/",是为了解决打war时访问不到问题
        registry.addResourceHandler("/**").addResourceLocations("/","classpath:/");
    }
}

不过真的是不建议我们修改静态资源文件的访问目录为classpath:/,因为如果我们改了静态资源的访问目录为classpath:/,这会带来一个隐患,就是classpath下的所有文件都是可以被访问到的。其实我们直接使用springboot的默认设置的静态资源目录(classpath:/statc/)就可以了,不管是打war包还是jar包都是可以被访问的,同时也会杀死别的目录下的文件被访问的机会。

但是有时候我们真的是需要访问别的路径,比如我之前做的一个项目,进行图片的上传,因为项目不是很大,所以没有用到文件服务器,直接就是本地保存的,如果直接保存在项目目录下这回带来一个很大的问题,项目代码重新发布的时候要把之前上传的图片拷贝出来,发布好后再放回去,这样很麻烦,所以需要放到项目外面,这个时候不想改变静态资源访问目录都不想了,但是还是建议将静态资源放进static文件夹下,别的访问目录我们可以直接在后面追加,这样就很完美了。


想要访问别的路径还是得自己配置, 看样子试下static 路径下,看能不能行。

目录
相关文章
|
C语言
C语言动态内存管理
C语言动态内存管理
87 4
性能高、上手快,实体类转换工具 MapStruct 到底有多强大
1.什么是MapStruct 1.1 JavaBean 的困扰 对于代码中 JavaBean之间的转换, 一直是困扰我很久的事情。在开发的时候我看到业务代码之间有很多的 JavaBean 之间的相互转化, 非常的影响观感,却又不得不存在。我后来想的一个办法就是通过反射,或者自己写很多的转换器。 第一种通过反射的方法确实比较方便,但是现在无论是 BeanUtils, BeanCopier 等在使用反射的时候都会影响到性能。虽然我们可以进行反射信息的缓存来提高性能。但是像这种的话,需要类型和名称都一样才会进行映射,有很多时候,由于不同的团队之间使用的名词不一样,还是需要很多的手动 set/get
|
网络安全 开发工具 数据安全/隐私保护
ssh方式已经out了,AccrssToken了解下
在过往中,我们都是本地配置ssh生成key,然后在github的ssh中粘贴本地生成的key,这种方式其实挺繁琐的,如果我换一台电脑,貌似我又需要重复一遍这样的操作
202 0
ssh方式已经out了,AccrssToken了解下
|
Ubuntu 开发工具
Ubuntu系统搭建FTP服务器
Ubuntu系统搭建FTP服务器
357 0
|
设计模式
第42/90步《番外篇》第2章 面向对象和设计模式实例讲解 第14课
今天学习《番外篇》第2章 面向对象和设计模式实例讲解 第14课 结构型模式一:组合模式和外观模式
87 0
|
存储 JSON 自然语言处理
史上最全的ElasticSearch系列之基础(一)(上)
前言 文本已收录至我的GitHub仓库,欢迎Star:github.com/bin39232820… 种一棵树最好的时间是十年前,其次是现在
262 0
PS服装设计素材:700套精品T恤PSD模版免费送!
相信从事服装设计以及初学者的小伙伴都明白,服装设计在企事业部门、学校、科研单位从事服装、服饰设计工作以及教学与研究工作的德才兼备的高级专门人才。服装设计用的软件也比较多,主要有PS,AI,CDR,CAD等软件。
1516 0
|
域名解析 缓存 网络协议
|
C# Windows
WPF中获取鼠标相对于屏幕的位置
原文:WPF中获取鼠标相对于屏幕的位置              WPF中获取鼠标相对于屏幕的位置                                   周银辉WPF编程时,我们经常使用Mouse.GetPosition(IInputElement relativeTo)或MouseEventArgs.GetPosition(IInputElement relativeTo)来获取鼠标相对于某一界面元素的相对位置,这自然也联想到另外的一个问题:如何获取鼠标相对于屏幕的位置。
1317 0
|
存储 消息中间件 关系型数据库