سؤال

تطبيق الربيع الذي أستخدمه يعلن أ توكي مرشح urlrewrite ثم إعداد قاعدة إعادة كتابة كما يلي:

<rule>
    <from>^/(.*)$</from>
    <to last="true">/app/$1</to>
</rule>

لماذا فعل هذا؟

لن يتمكن الربيع من التعرف على الطلبات التي لا تذهب إلى /app/ عنوان URL؟

وإلا ما هي ميزة هذا إعادة التوجيه؟

هل كانت مفيدة؟

المحلول

تخيل أنك تريد Spring MVC's DispatcherServlet للتعامل مع جميع عناوين URL في التطبيق الخاص بك باستثناء عناوين URL للمحتوى الثابت. إذا حاولت القيام بذلك مباشرة مع <url-pattern>/</url-pattern>, ، هذا التعيين سوف يكون له الأسبقية على المحتوى الثابت.

مع مرشح إعادة الكتابة ، يمكنك تحديد استثناءات للمحتوى الثابت ، مثل هذا:

<urlrewrite default-match-type="wildcard">
    <rule>
        <from>/staticContentHere/**</from>
        <to>/staticContentHere/$1</to>
    </rule>
    <rule>
        <from>/**</from>
        <to>/app/$1</to>
    </rule>    
</urlrewrite>

تعديل:لاحظ أنه منذ ربيع 3.0.4 هناك أ <mvc:resources /> إعلان. مع هذا الإعلان ، DispatcherServlet سوف يقدم محتوى ثابت من /resources المجلد الفرعي لـ WebApp ، لذا لن تكون هناك حاجة لإعادة الكتابة (انظر http://blog.springsource.com/2010/07/22/spring-mvc-3-showcase/).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top