CssRewriteUrlTransform обновляет URL-адрес CSS с абсолютным путем, говоря об этом, если мы используем -
bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css",new CssRewriteUrlTransform()));
и у нас есть следующий класс CSS в "site.css"
.Sandy
{
background-image: url("Images/Sandy.jpg");
border: 1px solid #c8c8c8;
border-radius:4px 4px 4px 4px;
box-shadow: 1px 1px 8px gray;
background-position:left;
background-size:contain;
-moz-background-size:contain;
-webkit-background-size:contain;
-o-background-size:contain;
background-repeat:no-repeat;
min-height:100px;
min-width:100px;
display:block;
}
и следующая структура папок -
-Web site Root
-Content
--site.css
--Images
---Sandy.jpg
Связка будет генерировать следующий путь URL-адреса CSS для «фонового изображения» -
background-image: url("/Content/Images/Sandy.jpg");
И теперь, если вы размещаете веб-сайт / веб-приложение в качестве веб-сайта на веб-сервере, указанный выше путь будет работать, потому что браузер отправит запрос для этого ресурса, используя следующий URL-адрес из-за ведущего '/'
http://<server>/content/images/sandy.jpg
но если вы размещаете веб-сайт как веб-приложение, это создаст проблему. Поскольку браузер по-прежнему будет интерпретировать это как абсолютный URL-адрес, а не как относительный, и все равно отправит следующий запрос на получение этого ресурса -
http://<server>/content/images/sandy.jpg
Таким образом, решение этой проблемы заключается в использовании относительного URL-адреса даже в файле CSS, а затем удалении CssRewriteUrlTransform из конфигурации пакета, как показано ниже:
background-image: url("Images/Sandy.jpg");
bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));
person
Bhalchandra K
schedule
10.12.2013
Muhammad Waqas Iqbal
... СМОТРИТЕ ТАКЖЕ: stackoverflow.com/questions/11355935/ - person Jonathan   schedule 04.06.2017