Почему связки не связываются на одном сервере?
Почему рендеринг пакетов связывается и минимизируется на одном сервере, а не на другом? QA и Production - это одна и та же ОС и версия IIS, но они дают разные результаты. В QA, Styles.Render()
а также Scripts.Render()
генерировать связанный, минимизированный вывод. В производстве они обычно не делают (но иногда делают).
У меня есть эта строка в моем макете.
@Scripts.Render("~/siteJs")
В разработке я ожидаю и получаю этот вывод.
<script src="/MyApp/Scripts/jquery.placeholder.js"></script>
<script src="/MyApp/Scripts/Site.js"></script>
На сервере QA я ожидаю и получаю это.
<script src="/MyApp/siteJs?v=7-G_q9YBnk..."></script>
Но в Production я обычно (но не всегда) получаю вывод dev.
<script src="/MyApp/Scripts/jquery.placeholder.js"></script>
<script src="/MyApp/Scripts/Site.js"></script>
Чтобы попытаться воспроизвести, я удалил веб-приложение из QA и развернул двоичные файлы и конфигурации для Production в QA, но все же QA дал мне ожидаемый результат. Я видел это в нескольких веб-приложениях, как MVC3, так и MVC4.
Я могу заставить его надежно минимизировать и связать, изменив строку в моем макете на это.
@Scripts.Render(BundleTable.Bundles.ResolveBundleUrl("~/siteJs"))
Это, к сожалению, всегда связывает и минимизирует, даже в разработке.
РЕДАКТИРОВАТЬ:
Отладка не установлена в Производстве и QA web.config
файлы.
<compilation targetFramework="4.0">
1 ответ
На производстве убедитесь, что для отладки установлено значение false в web.config. Установка его на true в процессе разработки должна изменить ваш вывод.
<compilation debug="false" ... />