パスを参照するとき、1つのアスタリスクではなく2つのアスタリスクの違いは何ですか?
以前、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
で使用されるパスパターンであり、スプリングチームはそれを実装し、フレームワーク全体で使用します。
参考のため、 AntPathMatcher のjavadocを参照してください(- newest javadocに問題があるようです。古いものをリンクします)。
問題に戻ると、ドキュメントによると、3つのルールしかありません。
?
は1文字に一致します*
は0個以上の文字に一致します**
は、パス内のゼロ個以上の「ディレクトリ」と一致します