Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I disable caching of an individual file in IIS 7 using weserver config settings

Is there any way to diable the caching of a single javascript file in my ASP.NET applicaiton without disabling the caching of any other files in the application?

It is running on IIS 7 in Azure, so to me it seems that my only options of controlling this are within the webserver tags.

I currently use the folowwing config, but this is disabling cache on all files.

     <modules runAllManagedModulesForAllRequests="true"/>

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

  </system.webServer>

I just want to disable cache of a single javascript file that changes quite often.

Is it possible?

like image 393
Dean Avatar asked Oct 14 '10 01:10

Dean


2 Answers

I just stumbled across this question; you can use the following to disable the cache on a specific file:

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

(Note that the path is relative to the web.config file)

Alternatively, place the single file in a directory on it's own, and give that directory it's own web.config that disables caching for everything in it;

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

[Both tested on IIS7.5 on Windows 7, but you'll have to confirm that it works OK on Azure]

like image 55
gdt Avatar answered Oct 10 '22 10:10

gdt


Looks like the above answer is missing a "profiles" tag

<caching>
  <profiles>
    <add extension=".js" kernelCachePolicy="DontCache" policy="DontCache"/>
  </profiles>
</caching>
like image 29
What Would Be Cool Avatar answered Oct 10 '22 10:10

What Would Be Cool