IIS7 Cache-Control

Я получаю эту ошибку Невозможно декодировать поток: java.io.FileNotFoundException: / content: / media / external / images / media / 119 (Нет такого файла или каталога)

[ 115] Это потому, что это не файл. Вы передаете строковое представление content Uri чему-то, что требует пути файловой системы. Это Uri является значением, которое вы (или что-то) получили из MediaStore.

90
задан Rob W 18 December 2011 в 15:20
поделиться

3 ответа

Если вы хотите установить заголовок Cache-Control, в пользовательском интерфейсе IIS7, к сожалению, нет ничего, что могло бы сделать это.

Однако вы можете поместить этот файл web.config в корень папки или сайт, на котором вы хотите установить его:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <staticContent>
      <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" />
    </staticContent>
  </system.webServer>
</configuration>

Это проинформирует клиента о необходимости кэширования содержимого в течение 7 дней в этой папке и во всех подпапках.

Вы также можете сделать это, отредактировав метабазу IIS7 с помощью appcmd.exe , например:

\Windows\system32\inetsrv\appcmd.exe 
  set config "Default Web Site/folder" 
  -section:system.webServer/staticContent 
  -clientCache.cacheControlMode:UseMaxAge

\Windows\system32\inetsrv\appcmd.exe 
  set config "Default Web Site/folder" 
  -section:system.webServer/staticContent 
  -clientCache.cacheControlMaxAge:"7.00:00:00"
121
ответ дан 24 November 2019 в 06:55
поделиться

Обновление F5 имеет семантический из, "перезагрузите текущий HTML И его прямые зависимости". Следовательно необходимо ожидать видеть любой imgs, css и js ресурс, на который непосредственно ссылается HTML, также повторно выбираемый. Конечно, 304 являются приемлемым ответом на это, но обновление F5 подразумевает, что браузер будет выполнять запрос, а не полагаться на новое содержимое кэша.

Вместо этого попытка, просто перешедшая где-то в другом месте и затем перешедшая назад.

можно вызвать обновление, мимо 304, путем содержания ctrl при нажатии f5 в большинстве браузеров.

19
ответ дан AnthonyWJones 24 November 2019 в 06:55
поделиться

Это неправда, Джефф.

Вам просто нужно выбрать папку в пользовательском интерфейсе диспетчера IIS 7 (например, изображения или событие в папке веб-приложения по умолчанию), а затем щелкнуть «Заголовки ответа HTTP» ". Затем вам нужно щелкнуть «Установить общий заголовок ..» на правой панели и выбрать «Истекать срок действия веб-содержимого». Там вы можете легко настроить максимальный возраст в 24 часа, выбрав «После:», введя «24» в текстовое поле и выбрав «Часы» в поле со списком.

Ваш первый абзац относительно записи web.config правильный. Я бы добавил атрибут cacheControlCustom, чтобы установить для заголовка элемента управления кешем значение «public» или что-то еще, что потребуется в этом случае.

Вы, конечно, можете добиться того же, предоставив записи (или файлы) web.config по мере необходимости .

Редактировать:

112
ответ дан 24 November 2019 в 06:55
поделиться
Другие вопросы по тегам:

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