When running my website through Google Page Insights, one of things I didn't do was cache static content, such as CSS, JavaScript and site images. Since I am on a shared hosting plan, I didn't think it was possible to have the option to cache a specific directory without direct IIS access.
Normally, when working on client sites hosted on a dedicated server, I set the cache header within "HTTP Response Headers" area in IIS. But all this actually does is generate a web.config file within the directory you wish to cache:
<!--?xml version="1.0" encoding="UTF-8"?-->
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Cache-Control" value="public, max-age=604800" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
So if you too are on shared hosting, add a web.config file with similar settings. In this case, I have cached my files for a week.
You can also set the cache settings in your main web.config file by wrapping a location path around the <system.webServer> node:
<location path="resources">
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Cache-Control" value="public, max-age=604800" />
</customHeaders>
</httpProtocol>
</system.webServer>
</location>