2013-09-21 2 views
2

я использовал mvc4 и когда я изменитьПочему css-изображение не будет отображаться, если EnableOptimizations = true?

BundleTable.EnableOptimizations = true; 

в BundleConfig.cs подам изображение не может загрузить и не удалось.

расположение моего образа на мое решение:

themes/default/Profile/images/abc.png 

в моем BundleConfig:

bundles.Add(new StyleBundle("~/Content/profile/PRA") 
    .Include("~/Content/themes/default/profile/mycss.css")); 

мой CSS:

.sampleback{ 
       background-image: url('images/abc.png'); 
      } 

, если я хочу использовать BundleTable.EnableOptimizations = верно ; я должен мой CSS класс, пока он работает:

.sampleback{ 
       background-image:url('../themes/default/Profile/images/abc.png'); 
     } 

это ошибка или я на неправильном пути?

+1

Ответ получен здесь: http://stackoverflow.com/a/14595525/1810243 Простым решением является изменение имени вашего пакета. – MikeSmithDev

ответ

2

Относительные пути в внешних ресурсах CSS разрешены как относительно пути самого ресурса CSS.

Итак, если ваш нестрочный CSS лежит в одном пути, а связанный CSS загружается с другого пути, то, конечно, относительный путь больше не будет корректным. (Если механизм связывания не позаботится об этом и не исправит такие относительные пути, прежде чем он будет записываться затем в связанный CSS.)

Простым решением было бы всегда использовать пути, относящиеся к корню домена, поэтому начиная с a /. Конечно, это делает ваш проект менее гибким, если вы хотите. в один прекрасный день переместите его в подпапку. Если вы хотите этого избежать, тогда найдите какое-то решение, которое предварительно анализирует ваш CSS и позволяет вам использовать переменную/константу для определения базового пути в центральном месте.

Смежные вопросы