Вопрос по – IIS 7.5 и изображения не кэшируются

18

Я не могу получить файлы изображений в кеш. Я перепробовал все, что нашел на этом и других сайтах и до сих пор не могу получить их в кеш.

Настройка веб-конфигурации, которую я пробовал

    <staticContent>
    <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="1.00:00:00" />
    </staticContent>
    <httpProtocol allowKeepAlive="true" />


    <caching enabled="true" enableKernelCache="true">
    <profiles>
    <add extension=".png" policy="CacheUntilChange" />
    <add extension=".jpg" policy="CacheForTimePeriod" duration="12:00:00" />
    </profiles>
    </caching>  

Вот заголовки ответа для одного из изображений

    Key Value
    Response    HTTP/1.1 200 OK
    Cache-Control   no-cache
    Content-Type    image/png
    Last-Modified   Thu, 16 Dec 2004 18:33:28 GMT
    Accept-Ranges   bytes
    ETag    "a1ca4bc9de3c41:0"
    Server  Microsoft-IIS/7.5
    X-Powered-By    ASP.NET
    Date    Fri, 18 May 2012 13:21:21 GMT
    Content-Length  775
IIS кеширует статический контент по умолчанию. Когда вы проверяете заголовки, убедитесь, что у ваших инструментов разработки нет опции отключения кэша. ajbeaven

Ваш Ответ

2   ответа
33

Следующее должно заставить браузеры кэшировать ваши изображения:

<staticContent>
    <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="1.00:00:00" />
</staticContent>
<httpProtocol>
    <customHeaders>
        <add name="Cache-Control" value="public" />
    </customHeaders>
</httpProtocol>

The<caching>...</caching>лок @ предназначен для кэширования на стороне сервера, а не для кэширования на стороне клиента.

Включает ли это заголовок кэша клиента в каждом статическом файле (.js, .css, .jpg и т. Д.)? Как я могу контролировать расширение? Благодарност Andres
Включает заголовки кэша для всего статического содержимого (которое включено в IIS) в папке (и подпапках) с помощьюweb.config файл с включенным. Так что если вы ваши изображения в/images ты должен сделатьweb.config с вышеупомянутым и поместите это в/images папки, поэтому это влияет только на изображения. Вы не можете включить / отключить его для каждого расширения файла. Marco Miltenburg
это вызывает ошибку 500.19, что мне делать? Digerkam
@ Digerkam Ошибка 500.19 указывает на ошибку конфигурации. Убедитесь, что web.config является допустимым XML-файлом. Проверьте наличие отсутствующих открытых или закрывающих тегов и убедитесь, что блок находится в<configuration><system.webServer>...</system.webServer></configuration>. Marco Miltenburg
эт сайт говорит<caching>...</caching> на стороне клиента, теперь кто прав? что думаешь stom
0

если кому-то нужно настроить ваш сайт как Chrome Audits или GTMetrix, я настроил свою среду следующим образом (спасибо Маркоотве):

<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="365.00:00:00" />

с помощью365 days, и оба инструмента приняли это значение как приемлемое для времени кэширования.

Похожие вопросы