IIS cached files never replaced

ぃ、小莉子 提交于 2019-12-12 04:55:13

问题


Perhaps I'm missing something by not wording my Google searches correctly, but I've run into an issue with IIS 8.5 and caching. I have a server set up that by all standards should be serving only static files. Obviously, when a file is changed, the new file should be served up. The issue is that even after a server restart, setting files to immediately expire, didsabling caching, disabling compression, and turning off any other caching feature, the old file with its old timestamp is still being served.

I have the following settings:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <security>
            <requestFiltering allowHighBitCharacters="false">
                <verbs allowUnlisted="false">
                    <add verb="GET" allowed="true" />
                </verbs>
            </requestFiltering>
        </security>
        <caching enabled="false" enableKernelCache="false" />
        <urlCompression doStaticCompression="false" />
    </system.webServer>
    <location path="" overrideMode="Deny">
        <system.webServer>
        </system.webServer>
    </location>
    <location path="" overrideMode="Allow">
        <system.webServer>
        </system.webServer>
    </location>
</configuration>

The folder in which the files are located has read only permissions. The interesing fact is that if I go to mydomain.com, the old version shows up, but going to newmydomain.com loads the new file (even though they both point to the same IP address).


回答1:


An HTTP client can use the old version of a file if the cache control header(s) sent with the response indicated that the content would not change for a given period of time. It does not matter if the content changed on the server or not.

For example, if the file is sent with the header:

Cache-Control: Max-age=86400

then for 24 hours the client can use the file without contacting the server. If the file changes on the server, the client won't know that the file changed because it won't even make a request to the server.

You can add the must-revalidate cache control attribute to force the client to always make a server request.



来源:https://stackoverflow.com/questions/29685600/iis-cached-files-never-replaced

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!