Можем ли мы кэшировать изображения, css и java-скрипты в MVC3 через кеш вывода?

Можем ли мы кэшировать изображения, css и javascript любого конкретного представления (не частичного представления) в MVC3 через атрибут OutputCache. например, я хочу кэшировать представление Home Controller. Я пробовал это, но кешируется только содержимое, а не изображения и css.


person Ramesh Joshi    schedule 13.08.2013    source источник
comment
обычно эти файлы являются статическими файлами. обслуживается непосредственно веб-сервером. вы создаете эти файлы динамически с помощью действия контроллера? если да, вы должны иметь возможность просто добавить атрибут.   -  person Andreas    schedule 13.08.2013
comment
Привет, Андреас. Да, все эти файлы статические. Что я хочу сделать, так это то, что когда сети не будет, я хочу показать свою домашнюю страницу с сообщением «Система вне сети».   -  person Ramesh Joshi    schedule 13.08.2013


Ответы (1)


Вместо атрибута Output Cache вы можете использовать следующие методы для кэширования статических ресурсов:

1. Использование максимального возраста. Поместите ниже раздел в web.config в разделе <configuration> -> <system.webServer>

<staticContent>
    <!-- Tell client to cache static files for a year -->
    <clientCache cacheControlMode="UseMaxAge"
                 cacheControlMaxAge="365.00:00:00" />
</staticContent>

2.Использование версий URL. Можно сделать в комплекте. Если вы используете MVC3, вы можете посмотреть combres на nuget. В MVC4 или выше это встроенная опция: Объединение и минификация< /а>

person Piotr Stapp    schedule 13.08.2013
comment
Привет, Гарат, я попытался с помощью staticContent добавить свой файл web.config, но снова не повезло. - person Ramesh Joshi; 13.08.2013
comment
Что именно вы пытаетесь сделать. Этот оператор web.config включает кэширование на стороне клиента. - person Piotr Stapp; 13.08.2013
comment
Привет @Garath: после добавления combres Nuget он начнет автоматически кэшировать изображения / css / js? - person Imad Alazani; 13.08.2013
comment
Нет. вам нужно будет определить пакеты - person Piotr Stapp; 13.08.2013
comment
Привет @Garath: я хочу кэшировать свою домашнюю страницу, и когда нет сетевого подключения, я все же хочу показать свою домашнюю страницу с сообщением «Система вне сети». - person Ramesh Joshi; 14.08.2013
comment
@Рамеш это невозможно. Если ваш сервер не работает, пользователю ничего не будет показано. - person Piotr Stapp; 14.08.2013
comment
@Garath: после добавления пакета Nuget для Combres. Можете ли вы сказать, где написать какой-либо код (если есть) для кэширования файлов изображений/Css/JavaScript. Пожалуйста ? - person Imad Alazani; 15.08.2013