首页 > 解决方案 > spring 如何从资源映射中访问特定的一个文件

问题描述

我有以下 servlet 映射存在 -

<mvc:resources mapping="/js/**" location="/resources/js/" />

观察: 如果任何网络请求以/js请求路径开头,那么它将被映射到资源目录,而 /** 符号表示递归查找基础资源目录下的任何资源文件。这里可以访问js/test.js,js/test2.js

要求: 我只想访问一个特定文件(js/test.js)。如何访问特定的一个文件(js/test.js)而不是所有出现在/resources/js位置的文件。

我可以使用下面的 servlet 映射 :::

<mvc:resources mapping="/js/test.js" location="/resources/js/" />

标签: springspring-mvcspring-security

解决方案


当您添加此行时

<mvc:resources mapping="/js/**" location="/resources/js/" />

Spring将添加一个过滤规则,上面写着

每当/js/**触发任何 URL 时,spring 都会在/resources/js/文件夹中递归查找它。

添加以下配置时

<mvc:resources mapping="/js/test.js" location="/resources/js/" />

只有带有的 URL/js/test.js才会在/resources/js/文件夹中查看。

请注意任何其他请求,例如/js/jqueryjs/abc不会被过滤。


推荐阅读