경로를 참조 할 때 하나의 별표 대신 두 개의 별표의 차이점은 무엇입니까?
이전에는 Spring 3 프로젝트를 디버깅하고있었습니다. .swf를 추가하려고했습니다.
<spring:url var="flashy" value="/resources/images/flash.swf"/>
내 web.xml의 ResourceServlet이 다음과 같이 보입니다.
<servlet-name>Resource Servlet </servlet-name>
<url-pattern>/resources/*</url-pattern>
하지만 불행히도이 오류가 발생했습니다.
WARN org.springframework.js.resources.ResourceServlet - An attempt to access a protected resource at /images/flash.swf was disallowed.
images
폴더의 모든 이미지 가 액세스 되었기 때문에 정말 이상하다는 것을 알았습니다. 그런데 왜 내 .swf가 “보호”되었습니까?
그 후, 나는을 변경하기로 결정 /resources/*
을 /resources/**
하고 마침내했다. 내 질문은 … 왜?
답변
이것은 Apache ant
Spring 팀 에서 사용 된 경로 패턴으로 프레임 워크 전체에서 구현하고 사용합니다.
참고로 AntPathMatcher의 javadoc을 참조하십시오 ( 최신 javadoc에 문제가있는 것 같으 므로 이전 파일을 연결합니다).
문제로 돌아가서 문서에 따르면 3 가지 규칙 만 있습니다.
?
한 문자와 일치*
0 개 이상의 문자와 일치**
경로에서 0 개 이상의 ‘디렉토리’와 일치