объединение файлов сценариев в веб-приложение с помощью платформы оптимизации asp.net

Я использую следующий код для объединения сценариев веб-приложений, но он не создает связанный сценарий

   Bundle bundle = new Bundle("~/miniscripts/");
        bundle.Include(
          "~"+  Paths.Scripts.AdminSkin.js.old_browsers_js,
          "~"+  Paths.Scripts.AdminSkin.js.site_js,
          "~"+  Paths.Scripts.AdminSkin.js.list_js,
          "~"+  Paths.Scripts.AdminSkin.js.jquery_accessibleList_js,
          "~"+  Paths.Scripts.AdminSkin.js.jquery_tip_js,
          "~"+  Paths.Scripts.highchart.highstock_src_js,
          "~"+  Paths.Scripts.highchart.modules.exporting_js,
          "~"+  Paths.Scripts.calendar.calendar_js,
          "~"+  Paths.Scripts.calendar.calendar_setup_js,
          "~"+  Paths.Scripts.AdminSkin.js.live_control_js,
          "~"+  Paths.Scripts.linq_js_ver_3_0_1_beta2.linq_js,
          "~"+  Paths.Scripts.moment.moment_min_js
            );

        BundleTable.Bundles.Add(bundle);

Что мне не хватает? Спасибо.


person r.zarei    schedule 24.08.2012    source источник


Ответы (3)


Итак, предполагая, что вы используете пакет 1.0.0, вы, вероятно, захотите использовать

new ScriptBundle("~/miniscripts/"); 

В противном случае ваш Bundle не выполняет минимизацию, а просто объединяет все файлы сценариев вместе. Затем на вашей странице вам нужно будет добавить:

Scripts.Render("~/miniscripts");

Чтобы ссылка на пакет отображалась. Вам также следует ознакомиться с учебным пособием здесь: Учебное пособие по оптимизации.

person Hao Kung    schedule 24.08.2012

Я предполагаю, что вы используете онлайн-пакет и версию для минимизации.

Сначала вам нужно добавить JsMinify при создании пакета, чтобы asp.net знал, как минимизировать ваши файлы.

Bundle bundle = new Bundle("~/miniscript", typeof(JsMinify));

И тогда вам нужно добавить ссылку на скрипт на свою страницу.

<script src="<%: Url.Content("~/miniscript") %>" type="text/javascript"></script> 
person Erwin    schedule 24.08.2012
comment
Bundle bundle = new Bundle(~/miniscript, typeof(JsMinify)); устарела и в AspNet.Web.Optimization [ссылка]nuget.org/packages/Microsoft. В версии оптимизации AspNet.Web.Optimization мы просто предоставляем виртуальный путь. - person r.zarei; 24.08.2012

Я нашел решение, я не знаю, почему Scripts.Render("~/miniscripts/") не отображает скрипты. Я обернул его с помощью Response.Write, и проблема решена.

  Response.Write(Scripts.Render("~/miniscripts/"));
person r.zarei    schedule 24.08.2012
comment
Scripts.Render возвращает вам IHtmlString, вы можете просто сделать это: ‹%: Scripts.Render(~/miniscripts/) %› - person Hao Kung; 24.08.2012