2013-03-26 2 views
1

TLDR 내부에 적용되지 않습니다 : 나는 CDN에 이미지 경로를 매핑 할 IIS 7.5 URL의 Rewriter가 사용하고아웃 바운드 규칙은 updatepanel


아웃 바운드 규칙은 updatepanel 부분 포스트 백 내에서 적용되지 않습니다. 여기

<Repeater Goes Here> 

    <img alt="alt text" src="<%#getImageSource(Eval("Filename").ToString())%>"> 

<End of Repeater> 

가의 함수 getImageSource 차례로이

<img alt="alt text" src="http://img.cdn.com/someimage.jpg"> 

이 작품은 만드는 아웃 바운드 규칙에 재 작성 "/images/someimage.jpg"

반환 가정 해 봅시다

을 무슨 일이 일어나고 있는지의 단순화 된 버전입니다 :

<rule name="Out_Rewrite_ServeCookieLessImages" preCondition="ResponseIsHtml" enabled="true"> 
     <match filterByTags="Img" pattern="^/Images/(.*)$"/> 
     <action type="Rewrite" value="http://img.cdn.com/{R:1}"/> 
    </rule> 

    <preConditions> 
     <preCondition name="ResponseIsHtml"> 
     <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html"/> 
     <add input="{URL}" pattern="\.axd.*$" negate="true"/> 
     </preCondition> 
    </preConditions> 

문제는 업데이트 패널

내부 비동기 포스트 백 후 출력있어 실제 HTML을 리피터를 사용하는 경우 것은 내가 만들 것 어떻게

<img alt="alt text" src="/Images/someimage.jpg"> 

대신

<img alt="alt text" src="http://img.cdn.com/someimage.jpg"> 

때문이다 updatepanel 출력을 올바르게 구문 분석합니까? 사전에

감사


편집 :이 시점에서 내 생각 엔 그것은 아마도 페이지 수명주기 ... 또는 재 작성 모듈이 호출되는 순서로 뭔가를 가지고 있다는 것입니다 ... 것입니다 유지 업데이트

답변

3

UpdatePanel 사용시 서버가 반환하는 응답 내용 유형은 text/html 대신 text/plain입니다.

나열된 ResponseIsHtml 전제 조건은 text/html 콘텐츠와 만 일치하므로 UpdatePanel 응답을 다시 작성하지 않는 이유가 여기에 있습니다.

예상대로 당신은 텍스트/일반, 다음 내용을 다시 작성합니다 잡으려고 입력 정규식을 수정하는 경우 :

<preConditions> 
    <preCondition name="ResponseIsHtml"> 
    <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/[html|plain]"/> 
    <add input="{URL}" pattern="\.axd.*$" negate="true"/> 
    </preCondition> 
</preConditions> 

불행히도, 난 아직 못 찾았하는이 일에 문제가 솔루션 - 응답을 다시 작성하면 UpdatePanel 아약스 관리자가 ys.WebForms.PageRequestManagerParserErrorException을 던진다.