Объединение файлов JavaScript и CSS с Rejuicer в ASP.NET MVC - PullRequest
4 голосов
/ 16 февраля 2012

Я пытаюсь интегрировать Rejuice (страница github здесь ) в мой проект asp.net mvc для объединения js-файлов.Я скачал его через Nuget.Он успешно добавил ссылки и настроил файл web.config.

В глобальном asax Application_Start я настроил его следующим образом:

    OnRequest.ForJs("~/Combined.js")
        .Combine
        .FilesIn("~/Scripts/").Matching("*.js")
        .Configure();

    OnRequest.ForJs("~/Combined.css")
        .Combine
        .FilesIn("~/Style/").Matching("*.css")
        .Configure();

На главной странице:

<%= Rejuiced.JsFor("~/Combined.js") %>
<%= Rejuiced.CssFor("~/Combined.css")%>

Запуск проекта в режиме выпуска приводит к загрузке всех js иCSS-файлы отдельно.Запуск сайта под IIS тоже не помог.Разве он не должен объединять и скачивать только 2 файла, один для js, а другой для css?Что может вызвать эту проблему

Ответы [ 3 ]

6 голосов
/ 19 февраля 2012

Убедитесь, что debug = "true" удален из вашего файла web.config:

Измените

<system.web>
  <compilation debug="true" targetFramework="4.0">

на

<system.web>
  <compilation debug="false" targetFramework="4.0">

Это не 'Не имеет значения, если вы строите свой код в Debug или Release - Rejuicer уважает настройку отладки web.config, как и должно быть.Если для этого параметра установлено значение true, Rejuicer не будет минимизировать и объединять файлы.Это делает это так, что вы можете отлаживать свои скрипты, используя неминифицированные файлы при локальной работе.

Когда вы вставляете свой код в Production, ваше преобразование web.config.release будет работать и удалит debug = "true"атрибут из вашего файла web.config, так что ваши файлы всегда будут минимизированы в производственных сценариях.

2 голосов
/ 14 апреля 2012

У меня была очень похожая проблема, которая была решена, когда Rejuicer ничего не делал в режиме отладки.Однако для достижения этого существует другой способ, чем в принятом ответе.Существуют настройки web.config, которые управляют поведением Rejuicer, которые не документированы (насколько я вижу), но которые я обнаружил, изучив код.Установите PreventPassThroughOnDebug в «true»:

<configSections>
    <section name="compactor" type="Rejuicer.Configuration.CompactorConfiguration, Rejuicer"/>
    <section name="rejuicer" type="Rejuicer.Configuration.RejuicerConfiguration, Rejuicer"/>
  </configSections>
  <compactor Cache="true" Compact="true" Combine="true"/>
  <rejuicer PreventPassThroughOnDebug="true"/> <!-- THIS IS THE KEY.  SET TO "true" -->
0 голосов
/ 18 февраля 2012

Ну, мне не удалось заставить его работать правильно.Поэтому я переключился на combres .Он начал работать сразу же, как и ожидалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...