2012-06-14 8 views
0

현재 약 20 개의 별도 페이지가있는 웹 사이트가 있습니다. 모든 페이지에는 두 가지 버전이 있는데 ... 사용자가 아직 로그인하지 않은 버전과 로그인 한 버전입니다. 로그인 한 버전은 로그인하지 않은 버전과 매우 다를 수 있습니다. 사용자가 로그인하거나 로그 아웃 할 때 내 도메인의 모든 캐시 된 페이지를 '무효화'하도록 브라우저에 알리는 간단한 방법이 있는지 궁금합니다.로그인 한 사용자를위한 별도의 캐시

예 : 로그인하지 않은 뷰어가 내 사이트의 많은 페이지를 방문하여 브라우저가 이러한 모든 페이지를 캐시합니다. 로그온시 다음 번에 페이지가로드 될 때 브라우저가 캐시 된 버전을 사용하지 않게하는 특정 헤더를 사용자에게 제공 할 수 있습니까? 이것은 로그인과 로그 아웃 모두에서 발생해야합니다.

어떤 조언 트릭 나는 ... 캐싱에 감사합니다 :)

답변

1

아니, 당신은 않은 캐시 페이지에 사용자의 브라우저를 말할 수를 상당히 새로운 오전, 슈퍼 도움이 될 것입니다. 로그인 된 사용자는 다른 URL을 사용하여 로그 아웃 한 사용자와 다른 URL을 사용할 수 있습니다 (쿼리 문자열을 추가하는 것만으로 충분할 수도 있습니다). 또는 처음부터 캐싱을 허용하지 않습니다.

0

Force browser to clear cache을 살펴보십시오. 거기에 몇 가지 약속 리드가 있습니다.

그렇지 않으면 사용자에게 Shift 키를 누른 상태에서 다시로드 버튼을 클릭하십시오. ;-)

1

이상적으로 사용자의 로그인 상태를 나타내는 별도의 페이지가 없을 것입니다. 그 응용 프로그램의 속성은 실제로는보기가 아닌 모델에 속합니다. 나는 로그인 한 사용자가 컨트롤러를 통해 로그인하지 않은 페이지를 보지 못한다고 상상해보십시오. 어떤 경우에는 캐시 된 페이지와 그렇지 않은 페이지가 중요하지 않습니다.

다음과 같은 방법으로 내게 원하는 것을 할 수 있지만 예쁜 것은 아닙니다 ... 사용자가 로그인했지만 로그인하지 않은 페이지를 요청하면 페이지가 만료됩니다 (예 : $ q-> header (-expires => 'now')) 로그인하지 않은 사용자에게 로그인 한 사용자를 보냅니다. 그러나, 위와 같이, 나는 당신이 그것을하고 싶어하는지 의심 스럽다. 그런 시나리오를 탐지 한 js/ajax가있는 .js 파일을 참조한 다음 사용자를 로그인 한 페이지로 다시 리디렉션 할 수 있습니다.

당신은 시련이 무엇인지 알 수 있습니다. 이 문제가 사라지도록 응용 프로그램 디자인을 강화하는 것이 좋습니다. 잘하면 이것은 도움이되었다. 행운을 빕니다!

관련 문제