Как использовать SquishIt в Windows Azure - PullRequest
1 голос
/ 03 февраля 2012

Я хочу использовать пакет nuget SquishIt внутри и приложение MVC3, работающее в Windows Azure. Я использую SquishIt для сочетания и минимизации CSS и JS.

В моих Views / Shares / _Layout.cshtml у меня есть следующие строки:

@MvcHtmlString.Create(
    Bundle
    .Css()
    .Add("~/Content/templates/style.css")
    .Add("~/Content/market.css")
    .Add("~/Content/jquery-ui-theme/jquery-ui-1.8.17.custom.css")
    .ForceRelease()
    .Render("/Cache/combined-css_#.css"))

Это приводит к

"System.IO.IOException: Unable to open file"

Я нашел здесь кое-что http://www.bondigeek.com/blog/2011/03/22/all-is-quiet-not-on-the-azure-front/ но на самом деле это не то, что я хочу. В общем случае SquishIt должен иметь возможность записи на диск виртуальной машины Azure, но, возможно, каталог неправильный или прав доступа недостаточно. Есть идеи?

Ответы [ 2 ]

4 голосов
/ 21 апреля 2012

В виртуальной машине Azure вы не можете напрямую записывать в файловую систему.Вы должны настроить SquishIt для хранения пакетов в памяти.

См. Эту страницу для получения более подробной информации: Использование SquishIt программно без файловой системы

2 голосов
/ 17 ноября 2012

Вы можете использовать его в Azure, но вам нужно добавить сценарий запуска в веб-роли, который установит правильное разрешение для каталога, в который вы пишете:

Это шаги:

  1. Добавить новую папку в веб-проект, я предпочитаю называть ее App_Startup
  2. Добавить новый Bat-файл с именем enableWritePermissions.cmd
  3. Добавить команду разрешения: icacls %~dp0..\scripts /grant "NETWORK SERVICE":(OI)(CI)RX
  4. Добавьте сценарий запуска в веб-роль, добавив ServiceDefinition.csdef проекта Azure в теге сайтов <Startup> <Task commandLine="App_Startup\enableWritePermissions.cmd" executionContext="elevated" taskType="background" /> </Startup>

Вот и все, у вас есть разрешение на запись вкаталог \ scripts, и вы можете свободно использовать минимизацию.

...