1

Я включил html5mode для приложения AngularJS и задался вопрос о настройке URLrewrite. Я ссылался на this post и понял, что мои проблемы связаны с конфигурацией urlrewrite.AngularJS, Google App Engine и URLrewrite

Моя цель состоит в том, чтобы все вызовы были записаны обратно в index.html, чтобы угловой маршрутизатор мог правильно маршрутизировать. Ниже приведена моя существующая конфигурация. Я пробовал много различных типов, но не могу показаться, чтобы получить переписывают работу:

~~ urlrewrite.xml ~~

<urlrewrite default-match-type="wildcard"> 

    <rule> 
     <from>/**</from> 
     <to>/index.html</to> 
    </rule> 

    <outbound-rule> 
     <from>/**</from> 
     <to>/index.html</to> 
    </outbound-rule> 

</urlrewrite> 

Любые указатели на то, что я делаю неправильно?

ответ

0

Я знаю, что это довольно старый пост, но так как я наткнулся на него, пытаясь добиться того же - я дам ответ на свое решение.

При условии, что urlrewritefilter настроен должным образом, добавьте следующие строки в urlrewrite.xml:

<urlrewrite> 
    <rule> 
     <condition type="request-uri" operator="notequal">^/$</condition> 
     <condition type="request-uri" operator="notequal">^/angular/.*$</condition> 
     <condition type="request-uri" operator="notequal">^/_ah/.*$</condition> 
     <condition type="request-uri" operator="notequal">^/api/.*$</condition> 
     <condition type="request-uri" operator="notequal">^/bower_components/.*$</condition> 
     <condition type="request-uri" operator="notequal">^/css/.*$</condition> 
     <condition type="request-uri" operator="notequal">^/fonts/.*$</condition> 
     <condition type="request-uri" operator="notequal">^/img/.*$</condition> 
     <condition type="request-uri" operator="notequal">^/js/.*$</condition> 
     <condition type="request-uri" operator="notequal">^/tasks/.*$</condition> 
     <condition type="request-uri" operator="notequal">^/test/.*$</condition> 
     <condition type="request-uri" operator="notequal">^/vendor/.*$</condition> 
     <condition type="request-uri" operator="notequal">^/index.html*$</condition> 
     <to>/index.html</to> 
    </rule> 
</urlrewrite> 

Это правило будет ловить все запросы на ^(.*)$ как «из» элемента отсутствует. Конечно, вам нужно будет добавлять маршруты, специфичные для вашего приложения, но обратите внимание, чтоотносится к числу игнорируемых маршрутов, что позволяет вашим конечным точкам Google App Engine работать правильно.

При настройке фильтра (по умолчанию в web.xml), это очень полезно увеличить уровень журнала по умолчанию, так что вы можете смотреть на то, что запросы перезаписывается в консоли:

<filter> 
    <!-- Add this to your existing configuration for debug purposes --> 
    <init-param> 
     <param-name>logLevel</param-name> 
     <param-value>TRACE</param-value> 
    </init-param> 
</filterr> 
+0

Спасибо за ответ! С тех пор я отложил этот проект, но я очень заинтересован в применении вашего решения. Я буду следить за вами, когда я сделаю обновления. –