Сборка стиля не работает после развертывания IIS (MVC 4) - программирование
Подтвердить что ты не робот

Сборка стиля не работает после развертывания IIS (MVC 4)

У меня возникают проблемы с набором пакетов стилей после развертывания в IIS. Я создал простое решение, чтобы продемонстрировать свою проблему.

Я создал простой тестовый проект (VS 2012, MVC 4) с одним контроллером и представлением, содержащим строку "Hello World".

Я создал (тестовый) CSS в папке содержимого с простым простым изменением цвета

Content\helloWorldCss\helloWorldStyle.css

Затем я редактировал класс BundleConfig.cs и добавил путь к моему CSS как новый пакет:

            bundles.Add(new StyleBundle("~/Content/helloWorldCss").Include("~/Content/helloWorldCss/helloWorldStyle.css"));

Затем я добавил новый пакет для моего _Layout.cshtml:

@Styles.Render("~/Content/helloWorldCss")

Когда я запускаю свое приложение через VS (или Инспектор страниц), мой CSS успешно применяется, и все кажется ОК. Тем не менее, , когда я публикую/развертываю свой проект в IIS (через VS), я могу просматривать свой HTML, но мой CSS не применяется. После развертывания существует следующий файл:

Content\helloWorldCss\helloWorldStyle.css

Что действительно меня озадачивает, так это то, что когда я изменяю свой _Layout.cshtml и добавляю "обычный" ref к тому же CSS вместо использования ref ref, CSS применяется после публикации без каких-либо проблем.

<link href="@Url.Content("~/Content/helloWorldCss/helloWorldStyle.css")" rel="stylesheet" type="text/css" />*

Буду признателен за любую помощь и советы по этому поводу.

4b9b3361

Ответ 1

Я думаю, что у вас здесь столкновение имен. ASP.NET MVC создаст файл на http://example.org/Content/helloWorldCss после минификсации, и у вас уже есть папка с тем же путем. Можете ли вы попробовать еще раз, переименовав свой пакет?

BundleConfig.cs:

bundles.Add(new StyleBundle("~/Content/helloWorld").Include("~/Content/helloWorldCss/helloWorldStyle.css"));

_Layout.cshtml:

@Styles.Render("~/Content/helloWorld")

Ответ 2

Это то, что я делаю. Конфигурация IIS > Аутентификация > Анонимная авторизация RightClickOn > Нажмите "Редактирование" > "Проверить идентификатор пула приложений"

IIS Config>Authentication>RightClickOn Anonymous Auth>Click Edit> Check Application pool identity

Ответ 3

Когда вы используете публикацию VS на тестовом сервере, она использует defaultAppPool. Для стилизации и SimpleMembership вам необходимо:

  • Установите ASP.NET 4.0 на свой сервер. cmd - cd C:\Windows\Microsoft.NET\Framework\v4.0.30319 \ Тип aspnet_regiis.exe -ir

  • Добавить пул приложений ASP.NET 4.0 в IIS.

  • Задайте свой сайт для использования ASP.NET 4.0 в качестве пула приложений.

  • Добавьте учетную запись безопасности ASP.NET 4.0 на SQL Server и дайте ей роль dbcreate.