Сборка стиля не работает после развертывания 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" />*
Буду признателен за любую помощь и советы по этому поводу.
Ответы
Ответ 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.