Я работаю над стратегией хранения и развертывания файлов JavaScript в Azure (веб-роль ASP.NET). Мои требования:
- Чтобы использовать минифицированные версии в продакшене
- Используйте оригинальные версии (т.е. не минифицированные) локальные версии в среде разработки (для упрощения отладки)
- Простой процесс сборки / развертывания (VS2010)
- Простой процесс обновления (мои файлы время от времени будут меняться)
Здесь есть отличное обсуждение Visual Studio 2010: публиковать уменьшенные файлы javascript вместо исходных, однако при этом не принимаются во внимание преимущества, которые Azure может предложить или возможность работы с несколькими экземплярами.
Я рассматриваю возможность развертывания моих миниатюрных файлов JavaScript в хранилище BLOB-объектов и использования их в производственной версии. Они будут храниться в большом элементе управления кэшем максимального возраста для кэширования на стороне клиента, а в именах файлов будет храниться версия (так что я могу легко обновить). Я приветствую отзывы об этой стратегии.
Таким образом, при разработке визуализированный HTML-код будет относиться к локальному файлу сценария, то есть:
<script src="Scripts/myjavascript-0.0.1.js" type="text/javascript"></script>
Но в производстве результат должен использовать следующее для обозначения уменьшенной версии.
<script src="http://myblob.blob.core.windows.net/Scripts/myjavascript-0.0.1.js" type="text/javascript"></script>
Мой главный вопрос, однако, заключается в том, как лучше всего добиться автоматического переключения путей в разработке и производстве. Или пользовательский обработчик будет обычным маршрутом (и если да, то как это будет работать - я не хочу, чтобы каждый экземпляр перезагружался из большого двоичного объекта при каждом запросе).