springboot访问webapp下静态资源,springboot 静态资源配置
00-1010访问静态资源遇到的坑,解决直接访问静态资源的问题。SpringBoot的默认静态资源访问配置在shiro或security之后引入了拦截过滤
目录
它从这个结构开始,产生了一个红色的页面,访问的页面看起来是这样的。
终于找出问题了,虽然每次路径都不正确。最后,你可以通过观察各种方法来了解它:
添加:
包com . example . demo . config;导入org . spring framework . stereotype.component;import org . spring framework . web . servlet . config . annotation . resourcehandlerregistry;导入org . spring framework . web . servlet . config . annotation . webmvc configurer;@ Component公共类WebConfig实现WebMVConfigurer {/* *添加一个静态资源文件,可以直接访问地址* * @ param registry */@ override Public void address handlers(resource handler registry){ registry . address handler(/static/* * )。addResourceLocations( class path :/static/);}}
所以你可以问:
00-1010现在一般和前端分开。SpringBoot主要是提供接口服务,但是有时候会有一些小项目希望一个jar的前端和后端都做好,所以把页面等一些静态资源放到SpringBoot里面。这里记录一下静态资源访问方式以及引入shiro后的修改。
00-1010 Spring Boot的默认配置可以直接URL以下路径中的静态资源
class path :/META-INF/resources/class path :/resources/class path :/static/class path :/public/顺序优先级按照上面的顺序
假设端口设置为8080,URL访问http://localhost 33608080/index . html请注意,URL路径中没有添加static/
测试结果表明,META-INF-resources下的index.html首先被访问。
SpringBoot中默认配置的静态资源路径的值是由变量spring . resources . static-locations控制的,一般我们不用修改。
静态位置=class path :/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/#静态资源的位置。
00-1010假设首先shiro或security截获SpringBoot的所有访问路径(/* *)。在这种情况下,我想把我的静态资源如页面,js,css,图片等。这样白影或保安就不会截获这些资源。我该如何配置它们?
假设你的静态资源目录如下:
一开始以为这样:
filterRuleMap.put(/static/**, anon );也就是说,静态路径下的所有静态资源都被释放,但是找到了访问404。
实际上,src/main/resources/static是存储静态资源的目录,而不是url访问目录。您应该为静态目录中的资源配置过滤规则。
可以这样配置。以下是shiro的静态资源过滤配置,和security的一样,主要关注哪些url路径需要过滤。
//过滤配置filterrulemap.put (/CSS/* *, Anon )等图片js文件;filterRuleMap.put(/js/**, anon );filterRuleMap.put(/img/**, anon );filterRuleMap.put(/pages/**, anon );//Home过滤配置filterrulemap.put (/index.html , Anon );filterRuleMap.put(/, anon );通过这种方式,您可以访问静态资源并访问index.html。
如果发现要配置很多文件,可以把所有的原始文件放在一个统一的目录myfiles下,过滤这个目录,如下图所示:
filterRuleMap.put(/myfiles/**, anon );//Home过滤配置filterrulemap.put (/index.html , Anon );filterRuleMap.put(/, anon );但是当你访问主页的时候,你需要在URL路径中添加这个myfiles,localhost :8080/my files/index . html。
一个愚蠢的解决方案是添加一个额外的index.html页面,直接跳转到/myfiles/index.html页面。
script window . location . href= pages/index . html ;/脚本
以上个人经验,希望能给大家一个参考,也希望大家能支持盛行的IT。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。