IT

웨서버 구성 설정을 사용하여 IIS 7에서 개별 파일의 캐시를 비활성화하려면 어떻게 해야 합니까?

itgroup 2023. 4. 23. 10:16
반응형

웨서버 구성 설정을 사용하여 IIS 7에서 개별 파일의 캐시를 비활성화하려면 어떻게 해야 합니까?

제 ASP에서 javascript 파일 하나를 캐싱할 수 있는 방법이 있나요?응용 프로그램에서 다른 파일의 캐시를 비활성화하지 않고 NET 응용 프로그램을 사용할 수 있습니까?

Azure의 IIS 7에서 실행되고 있기 때문에 웹 서버 태그 내에서만 제어할 수 있는 것 같습니다.

현재 following 구성을 사용하고 있지만, 이로 인해 모든 파일의 캐시가 비활성화됩니다.

     <modules runAllManagedModulesForAllRequests="true"/>

    <staticContent>
      <clientCache cacheControlMode="DisableCache"/>
    </staticContent>

  </system.webServer>

자주 변경되는 javascript 파일 하나의 캐시를 비활성화하고 싶을 뿐입니다.

가능합니까?

우연히 이 질문을 받았습니다.다음 항목을 사용하여 특정 파일의 캐시를 비활성화할 수 있습니다.

<configuration>
  <location path="path/to/the/file">
    <system.webServer>
      <staticContent>
        <clientCache cacheControlMode="DisableCache" />
      </staticContent>
    </system.webServer>
  </location>
</configuration>

(경로는 web.config 파일에 상대적입니다).

또는, 1개의 파일을 독자적인 디렉토리에 격납해, 그 디렉토리에 독자적인 web.config 를 지정해, 그 디렉토리에 있는 모든 파일의 캐시를 무효로 합니다.

<configuration>
  <system.webServer>
    <httpProtocol>
      <customHeaders>
        <add name="Cache-Control" value="no-cache" />
      </customHeaders>
    </httpProtocol>
  </system.webServer>
</configuration>

[둘 다 Windows 7의 IIS7.5에서 테스트했지만 Azure에서 정상적으로 동작하는지 확인해야 합니다]

위의 답변에 "프로파일" 태그가 없는 것 같습니다.

<caching>
  <profiles>
    <add extension=".js" kernelCachePolicy="DontCache" policy="DontCache"/>
  </profiles>
</caching>

시스템을 살펴봐야 할 것입니다.WebServer/Caching 클래스 - 캐싱 프로파일을 특정 확장에 적용할 수 있습니다.이를 통해 적어도 .js로 끝나는 모든 Javascript 파일을 제어할 수 있습니다.

<system.webServer>
...

   <caching>
      <add extension=".js" policy="DontCache" kernelCachePolicy="DontCache" />
   </caching>

</system.webServer>

그러면 클라우드에서 프로세스와 커널 캐싱 모두에서 .js 캐시를 사용할 수 없게 됩니다.

이 web.config는 파일만 포함하는 폴더에 작성할 수 있으며, 이 폴더 레벨에서만 .js 캐시를 사용할 수 없게 됩니다.솔직히 저도 시도해 본 적이 없어서, 그냥 테스트해 볼만한 제안일 뿐이에요.


또, 캐싱 설정 관련의 IIS 메뉴얼도 참조해 주세요.

/캐싱 : http://www.iis.net/ConfigReference/system.webServer/caching

/캐싱/프로파일:http://www.iis.net/ConfigReference/system.webServer/caching/profiles

/캐싱/프로파일/추가:http://www.iis.net/ConfigReference/system.webServer/caching/profiles/add

이러한 설정 태그에 대한 조사가 도움이 되었으면 합니다.

그렇지 않은 경우 IIS 요청 파이프에 삽입할 수 있는 커스텀HTTP 모듈을 실장하는 것을 추천합니다.이것에 의해, 캐싱 제어가 그 특정의 파일에 대해서 필터링 됩니다.

** IIS 동작만으로 Azure 내외에서 차이가 없기 때문에 개발 패브릭 또는 Azure 테스트에 번거롭지 않고 로컬 테스트를 쉽게 수행할 수 있습니다.

폴더 레벨에서 web.config를 포함하여 폴더 레벨에서 확장자를 제거함으로써 폴더 레벨에서 출력 캐시를 비활성화할 수 있습니다.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
        <caching>
            <profiles>
                <remove extension=".js" />
            </profiles>
        </caching>

  </system.webServer>
</configuration>

이제 이 폴더는 .filename으로 끝나는 파일에 대해 출력 캐시를 활성화하지 않습니다.

파일: 、 능 、 가 다 다 다 다 the the 。컨피규레이션파일에서 실행할 수 있습니다.
(https://stackoverflow.com/a/4821328/2247494) 참조).

<configuration>
    <location path="cache.manifest">
      <system.webServer>
        <staticContent>
          <clientCache cacheControlMode="DisableCache" />
        </staticContent>
      </system.webServer>
    </location>
</configuration>

IIS 패널을 엽니다.

사이트에서 관련 응용 프로그램을 연 다음 특정 파일이 들어 있는 폴더로 이동합니다.

오른쪽 창에서 콘텐츠 보기로 전환합니다.

원하는 파일을 선택합니다.

이제 파일을 마우스 오른쪽 버튼으로 클릭하여 "기능 보기로 전환"을 선택합니다.

여기서 HTTP 응답 헤더를 선택하고 "추가"를 눌러 새 헤더를 추가하고 "캐시 없음" 값으로 "캐시 제어" 헤더 추가를 누릅니다.

언급URL : https://stackoverflow.com/questions/3929284/how-do-i-disable-caching-of-an-individual-file-in-iis-7-using-weserver-config-se

반응형