2014-09-17 1 views
7

Я использую пакетирования в MVC и иметь следующее:Добавить кеш-буттер в не оптимизированный пакет?

@Scripts.Render("~/bundles/scripts.js"); 

Когда BundleTable.EnableOptimizations = true это делает, как:

<script src="/bundles/scripts.js?v=RF3ov56782q9Tc_sMO4vwTzfffl16c6bRblXuygjwWE1"></script> 

Когда BundleTable.EnableOptimizations = false это делает, как:

<script src="/js/header.js"></script> 
<script src="/js/content.js"></script> 
<script src="/js/footer.js"></script> 

ли это возможно перехватить не оптимизированную версию, чтобы включить мой собственный пользовательский кеш-бэттер?

Например:

<script src="/js/header.js?v=12345"></script> 
<script src="/js/content.js?v=12345"></script> 
<script src="/js/footer.js?v=12345"></script> 
+1

Возможный дубликат [связывание выключено, но я все еще хочу управлять версиями] (http://stackoverflow.com/questions/18764617/bundling-is-turned-off-but-i-still-want-versioning) – MikeSmithDev

ответ

5

Почему вам нужно? В разработке, где BundleTable.EnableOptimizations = false ничего не кэшировано в любом случае, а в производстве вы должны имеют BundleTable.EnableOptimizations = true, также отрицая необходимость в чем-то подобном.

Короткий ответ, нет, нет ничего, чтобы вы могли делать то, что вы просите, в первую очередь из-за причин, о которых я уже говорил: просто нет необходимости в такой функции.

+0

Спасибо chris, ive получил конфигурацию, чтобы иметь возможность отключать оптимизацию в производстве. В основном это быстрый откат в случае, если развертывание оптимизации должно вызвать любые непредвиденные проблемы. В этом случае id хотел бы сохранить существующие кэширующие устройства на месте. Мне кажется, что для этого нужно создать собственный собственный помощник mvc. Еще раз спасибо. – Curt

+0

@Chris: 'BundleTable.EnableOptimizations = false ничего не кэшируется в любом случае', но не все ли клиент кэширует запросы к статическим js и css-файлам? Если у клиента есть старый файл с тем же именем, он не отправится на сервер. Разве это не значит, что параметры запроса версии должны решаться путем перебора кеша, или я ошибаюсь? – KyleMit

+0

@KyleMit: Ключевым моментом этого утверждения было «в разработке». IIS Express отправляет заголовки, сообщающие клиенту, что они не кэшируют ресурсы, потому что это разработка. Хотя верно, клиент * может * игнорировать это и кешировать в любом случае, все браузеры очень точно придерживаются запросов кэширования сервера. –