IIS URL переписать - CSS и JS неправильно переписаны - PullRequest
6 голосов
/ 02 октября 2011

Возникла проблема с моими urlrewrites - каждый раз, когда я указываю на страницу, которую нужно переписать, она не отображается, потому что также применяет правило к файлам css & js, на которые есть ссылки на моей веб-странице.

Чтобы попытаться исправить это, я ввел полный путь к css и js - это прекрасно подходит для любой страницы, где перезапись не применяется, когда я пытаюсь получить доступ к переписанной странице, которую зависает браузер.

Имееткто-нибудь сталкивался с чем-то похожим, и если да, есть ли у вас решение?Ценю любую помощь.Попытался найти на сайте похожие проблемы, но пока что ни одна из них не помогла.

<rewrite>
<outboundRules>
<rule name="OutboundRewriteUserFriendlyURL1" preCondition="ResponseIsHtml1" stopProcessing="true">
<match filterByTags="A, Form, Img" pattern="^(.*/)myapplicationname/Index\.html\?team=([^=&amp;]+)$" />
<action type="Rewrite" value="{R:1}team/{R:2}/" />
</rule>
<preConditions>
<preCondition name="ResponseIsHtml1">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
</preCondition>
</preConditions>
</outboundRules>
<rules>
<rule name="RedirectUserFriendlyURL1" stopProcessing="true">
<match url="^myapplicationname/Index\.html$" />
<conditions>
<add input="{REQUEST_METHOD}" pattern="^POST$" negate="true" />
<add input="{QUERY_STRING}" pattern="^([^=&amp;]+)=([^=&amp;]+)$" />
</conditions>
<action type="Redirect" url="{C:1}/{C:2}" appendQueryString="false" />
</rule>
<rule name="RewriteUserFriendlyURL1" stopProcessing="true">
<match url="^([^/]+)/([^/]+)/?$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="Index.html?{R:1}={R:2}" appendQueryString="false" />
</rule>
</rules>
</rewrite>

на моей веб-странице:

<script src="/myapplicationname/Scripts/jquery-1.4.1.js" type="text/javascript">    </script>
<link href="/myapplicationname/Styles/MainStyle.css" rel="stylesheet" type="text/css" />

он применяет к ним переписывание и пытается найти / myapplicationname/Team/Styles/MainStyle.css и аналогичные с файлом JS.

1 Ответ

4 голосов
/ 03 ноября 2011

Попробуйте выяснить, какое правило вызывает проблему, удалив их одно за другим.Теперь добавьте условие в это правило:

    <rule name="Some rule">
      ...
      <conditions logicalGrouping="MatchAny">
          <add input="{URL}" pattern="^.*\.(ashx|axd|css|gif|png|jpg|jpeg|js|flv|f4v)$" negate="true" /> 
      </conditions>
    </rule>

Это позволит избежать запуска правила для файлов, заканчивающихся на .js, .css и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...