웨서버 구성 설정을 사용하여 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
'IT' 카테고리의 다른 글
blockblob 업로드 및 content type 설정 (0) | 2023.04.23 |
---|---|
EPplus를 사용하여 Excel로 DataTable 내보내기 (0) | 2023.04.23 |
python으로 목록을 채우는 내장 기능 (0) | 2023.04.23 |
Larabel에서 Excel로 Excel을 내보낼 때 어떻게 열 헤더를 포함할 수 있습니까? (0) | 2023.04.23 |
T-SQL을 사용하여 두 정수 값을 나누어 부동 결과를 얻는 방법은 무엇입니까? (0) | 2023.04.23 |