4

Я хочу использовать MVC4 пакетирование и Минимизация, но я всегда получаю сообщение об ошибке, как комментарий в моем не уменьшенная CSS файл:Сборка MVC4: Minification не удалось из-за функции css3?

/* Minification failed. Returning unminified contents. 
(534,29): run-time error CSS1019: Unexpected token, found ' ' 
(534,29): run-time error CSS1019: Unexpected token, found ' ' 
(534,29): run-time error CSS1042: Expected function, found ' ' 
(534,29): run-time error CSS1062: Expected semicolon or closing curly-brace, found ' ' 
(535,26): run-time error CSS1019: Unexpected token, found ' ' 
(535,26): run-time error CSS1019: Unexpected token, found ' ' 
(535,26): run-time error CSS1042: Expected function, found ' ' 
(535,26): run-time error CSS1062: Expected semicolon or closing curly-brace, found ' ' 
(536,25): run-time error CSS1019: Unexpected token, found ' ' 
(536,25): run-time error CSS1019: Unexpected token, found ' ' 
(536,25): run-time error CSS1042: Expected function, found ' ' 
(536,25): run-time error CSS1062: Expected semicolon or closing curly-brace, found ' ' 
(537,24): run-time error CSS1019: Unexpected token, found ' ' 
(537,24): run-time error CSS1019: Unexpected token, found ' ' 
(537,24): run-time error CSS1042: Expected function, found ' ' 
(537,24): run-time error CSS1062: Expected semicolon or closing curly-brace, found ' ' 
*/ 

соответствующие строки в CSS являются:

width: -webkit-calc(100% - 0.5em); 
width: -moz-calc(100% - 0.5em); 
width: -ms-calc(100% - 0.5em); 
width: -o-calc(100% - 0.5em); 

Что может Я делаю для минимизации работу с функцией calc css3?

ответ

1

Я не уверен, что вы сможете использовать его в текущей реализации. Думаю, у вас есть две вещи, которые работают против вас здесь.

  1. За http://www.w3.org/standards/techs/css#w3c_all почти все по-прежнему работает. Вероятно, не стоит пытаться реализовать что-то в System.Web.Optimization, если оно изменится и вызовет больше проблем в долгосрочной перспективе.

  2. calc() В настоящее время обособленно CSS Values and Units Module Level 3, которая гласит:

    следующие функции группы риска и могут быть удалены в течение периода CR: «известково()», «тумблер()», «атр()»«.

Так что с этими вещами, Microsoft может не быть на переднем крае CSS3. Конечно, это более чем вероятно, ошибка, так что синтаксис не полностью от стены. Надеемся, они с открытым исходным кодом System.Web.Optimization, чтобы люди могли исправлять такие проблемы. Но они обещают открыть источник уже почти год.

В то же время вы можете попытаться предварительно разбить файл локально на своем компьютере, где у вас есть большой контроль над ним. Или, возможно, попробуйте другую систему связывания/минимизации, такую ​​как Cassette.

+0

Да, спасибо. Очевидно, что MS реализовала больше интеллекта, который, как я думал, необходим для минимизации. Я попробовал Cassette, но имел некоторые другие проблемы, которые я не могу вспомнить прямо сейчас ... –

+0

@ Ollie Еще одна идея - реализовать свою собственную IBundleTransform и использовать мини-инструмент, который работает для того, что вы хотите сделать. Возможно, больше работы, чем вы готовы делать. –

+1

caniuse.com показывает, что на самом деле все современные браузеры поддерживают calc(), и он действительно работает нормально. Я решил использовать обходное решение, описанное здесь: http://stackoverflow.com/a/18570513/1155881 Спасибо Microsoft! ;-(Теперь работа по минимизации работает нормально. –

1

Я ответил на мой собственный вопрос, чтобы сказать вам, что я использую Bundle Transformer сейчас в связи с YUI Compressor. Это работает очень хорошо, и синтаксис очень похож на путь Microsoft.
Посмотрите на это!