2013-02-21 2 views
1

아래에 게시 된 다른 URL 형식으로이 페이지를 캐싱하는 방법을 알아낼 수 없습니다.Asp.Net 특정 쿼리 문자열 매개 변수를 다른 사람이 캐싱하지 않음

나는이 페이지를 캐시 싶습니다 : 나는 쿼리 문자열 PARAM "검색"에서 모든 캐시 할 수있는 페이지를 원하지 않는

/folder/ 
/folder/?page=2 
/folder/?id=17 
/folder/?id=17&page=2 

.

/folder/?search=1&param1=1&param2=2 

나는 OutputCache를의는 VaryByCustom 매개 변수의 일부를 보았다,하지만 난 방법 캐시되는 하단의 URL을 중지하는 단서가 없다.

편집 - 샘플 페이지

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="cache.aspx.vb" Inherits="cache" %> 
<%@ OutputCache Duration="3600" VaryByParam="page;id" %> 

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<body> 

    <%=date.now %> 

</body> 
</html> 

답변

-1

당신은 당신이 캐시 할 쿼리 문자열 매개 변수를 지정해야합니다. VaryByParam 속성을 사용하여 세미콜론으로 구분 된 문자열 목록으로 설정하십시오. 귀하의 경우 다음을 시도하십시오.

VaryByParam 특성 = "페이지 PARAM1, PARAM2"

+0

VaryByParam 특성 = "페이지, ID가?"모든 페이지에 대해 올바르게 작동하지만/폴더/검색 = 1 & PARAM1 = 1 캐시와의 출력을 참조하고/폴더/페이지 요청 –

+0

더 구체적이어야합니다./폴더 /는 페이지가 아니라 폴더입니다. –

+0

www.domain.com/folder/ 실제로 페이지를 요청하지 않습니다 ... –