Не удалось выполнить проверку. Возврат неограниченного содержимого
Я сделал свой первый веб-сайт с помощью MVC 5, который отлично работает на моей локальной машине, но когда я публикую его на сервере, некоторые из css не загружаются правильно.
/* Minification failed. Returning unminified contents.
(80,1): run-time error CSS1019: Unexpected token, found '@import'
(80,9): run-time error CSS1019: Unexpected token, found 'url('../Content/dark-skin/skin.css')'
(671,16): run-time error CSS1062: Expected semicolon or closing curly-brace, found ':'
(1288,16): run-time error CSS1062: Expected semicolon or closing curly-brace, found ':'
(1680,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(1682,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '50%'
(1685,1): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(1687,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '50%'
*/
/* NUGET: BEGIN LICENSE TEXT
*
* Microsoft grants you the right to use these script files for the sole
* purpose of either: (i) interacting through your browser with the Microsoft
* website or online service, subject to the applicable licensing or use
* terms; or (ii) using the files as included with a Microsoft product subject
* to that product license terms. Microsoft reserves all other rights to the
* files not expressly granted by Microsoft, whether by implication, estoppel
* or otherwise. The notices and licenses below are for informational purposes only.
*
* NUGET: END LICENSE TEXT */
/*!
* Bootstrap v3.0.0
*
* Copyright 2013 Twitter, Inc
* Licensed under the Apache License v2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
* Designed and built with all the love in the world by @mdo and @fat.
*//*! normalize.css v2.1.0 | MIT License | git.io/normalize */
Я понимаю, что компилятор пытается свести к минимуму файлы css, но не выполняет этого. Я попытался исправить эти ошибки, но после исправления некоторых из них и публикации снова ошибка выглядит одинаково, например, не выбирает мои изменения.
Даже самая странная вещь связана с файлом bootstrap.css, который я слегка изменил для целей веб-сайта. Когда я публикую его, изменения не входят в файл пакета. Возможно ли, что загрузочная загрузка загружена из объявления сервера Bootstrap, а не моего проекта?
bundles.Add(new StyleBundle("~/Content/cssmain").Include(
"~/Content/bootstrap.css",
"~/Content/site.css",
"~/Content/ilightbox.css",
"~/Content/bannerscollection_zoominout.css"));
Я также попытался сделать мини-код самостоятельно с помощью веб-приложения, но мои изменения не видны, и файлы выглядят не минимизированными.
Любая помощь приветствуется
Ответы
Ответ 1
Я решил проблему, связав bootstrap.css, выполнив две вещи:
- Включите bootstrap.css сначала в комплекте. Образец кода в вопросе уже делает это, но я не был.
- Добавьте официальную версию официальной версии (bootstrap.min.css) в проект в том же каталоге, что и для неиниминированной версии. Это подсказывает поставщику использовать существующий миниатюрный файл вместо попытки (и неудачи) минимизировать сам bootstrap.css. См. Зеленую стрелку на скриншоте ниже.
Обратите внимание: если вы используете определенную тему, замените bootstrap.css и bootstrap.min.css файлами, предоставленными темой. Здесь рабочий код моего проекта, в котором используется тема spacelab:
bundles.Add(new StyleBundle(GetStyleBundlePath("bootstrap")).Include(
"~/Content/3rdParty/bootstrap.spacelab.css",
"~/Content/3rdParty/bootstrap-datepicker.css",
"~/Content/3rdParty/bootstrap-multiselect.css"));
![enter image description here]()
Ответ 2
Для тех, кто может наткнуться на этот пост... Вы также можете устранить это, перемещая @import в первый связанный элемент.
В соответствии с: http://webdesign.about.com/cs/css/qt/tipcssatimport.htm
@Import всегда должен быть первым в документе CSS. Когда вы объединяете многоуровневые файлы CSS, он объединяет их в один связанный css файл. Поскольку второй файл css, добавленный в мой пакет, в конфигурации пакета, содержал @Import в начале, так как файлы были скованы вместе, @import появился в середине вновь объединенного документа. Как только я изменил порядок пакетов, проблема была решена.
Это важно понять, потому что, хотя вы можете использовать мини файлы, предоставляемые плагинами, такими как bootstrap, любые изменения, внесенные в неминифицированные файлы во время разработки, не будут добавлены в существующий файл с мини-css. Это означает, что вам придется дважды вносить изменения и перемещаться по мини файлу.
Ответ 3
Убедитесь, что ни один из этих файлов .js, которые вы заканчиваете, заканчивается на //Some Comment
. Если файл, заканчивающийся двойным обратным слэшем//комментарий, привязан к другому зависимому файлу, он будет рассматриваться как один длинный комментарий, вызывающий ошибку, которую вы видите. Уверен, что в конце одного из ваших .js файлов есть //@Импорт. Если в этом случае я думаю, что вы можете безопасно изменить эту строку на /* @Import */
Кроме того, я не знаю, было ли это исправлено в MVC5, но в MVC4 анализатор синтаксиса не обрабатывает нестандартные теги :-moz-any()
и :-webkit-any()
css.
Также просмотрите этот, чтобы узнать, как разрешить каталоги Less @import.
Ответ 4
Мы столкнулись с той же проблемой, и выясняется, что проблема с bootstrap.css. Мы получали точные ошибки минимизации, которые вы написали выше. У пакета есть проблемы с @import
, @keyframes
и @-webkit-keyframes
, которые находятся в файле css.
Что мы сделали для решения проблемы, так это удалить bootstrap.css из пакета и просто ссылаться на него напрямую (или мини-версию, если она есть) в Shared/_Layout.cshtml.
@Styles.Render("~/Content/bootstrap.min.css")
@Styles.Render("~/Content/css")
Ответ 5
Решение проблемы минимизации:
Я знаю два типа возможных проблем, вызывающих оптимизацию:
Недействительные файлы CSS, которые должны быть проверены перед связыванием. здесь служба валидации W3C CSS для этой цели.
Также учитывая, что Microsoft Optimizer читает содержимое целевых ресурсов для процесса минимизации, поэтому, используя некоторые специальные фразы типа @ sourceMappingURL=jquery.min.map
в файле JavaScript или @charset "UTF-8";
в файле стиля, Minification снова будет сбой. Поэтому попробуйте удалить или прокомментировать их.
Примечание, который по умолчанию, процесс объединения не может создать относительный путь ресурсов изображения в файлах css или js.
Относительное решение пути к изображению:
Вы можете использовать тот же путь, что и путь связывания, например:
bundles.Add(new StyleBundle("~/Content/css/jquery-ui/bundle")
.Include("~/Content/css/jquery-ui/*.css"));
Если вы определяете пакет на том же пути, что и исходные файлы, составляющие комплект, относительный путь ресурсов изображения по-прежнему будет работать (т.е. /bundle
может быть любым именем, которое вам нравится).
Или используя new CssRewriteUrlTransform()
как второй параметр, например:
bundles.Add(new StyleBundle("~/Content/css/bundle")
.Include("~/Content/css/*.css", new CssRewriteUrlTransform()));
Ответ 6
Обнаружено это тоже, у меня был bootstrap в списке пакетов среди основного css файла, в котором я снова импортировал bootstrap.min.css. Поэтому Bootstrap получил запрос дважды. Удаление строки импорта в моем основном файле css решило это для меня.
Ответ 7
@import не работает с минимизацией пакетов.
Сделайте это... в файле BundleConfig.cs:
bundles.UseCdn = true;
bundles.Add(new StyleBundle("~/skin", "../Content/dark-skin/skin.css"));
И установите это в макете:
@Styles.Render("~/skin")
Но допускаются только относительные URL-адреса приложения (~/url).
Ответ 8
Я сделал в своем BundleConfig.vb
(cs) все файлы, на которые ссылается @import
в файлы css следующим образом:
bundles.Add(New StyleBundle("~/bundle/css-account") _
.Include("~/Content/consola/bootstrap/css/bootstrap.css",
"~/Content/consola/plugins/node-waves/waves.css",
"~/Content/consola/plugins/animate-css/animate.css", //Referenced by @import
"~/Content/consola/plugins/bootstrap-select/css/bootstrap-select.css",
"~/Content/account/account.css",
"~/fonts/awesome/css/font-awesome.css",//Referenced by @import
"~/Content/consola/materialize.css", //Referenced by @import
"~/Content/consola/style.css"))
Это устранило почти все ошибки.
Следующее, что я сделал, это изменил мои css файлы, изменив синтаксис псевдоклассов css из этого [type="checkbox"]:not(.filled-in,.gm-menu-hamburger) + label:after {
к этому [type="checkbox"]:not(.filled-in) + label:after, [type="checkbox"]:not(.gm-menu-hamburger) + label:after {
Это решило все ошибки, которые у меня были.
надеюсь, это поможет
Ответ 9
Для меня проблема заключалась в том, что у меня был @import
в файле .css
.
Я переместил свой код в соответствующий файл .less
который компилируется при сборке, что устраняет ошибку сборки для меня. Составлено с Gulp.
Ответ 10
Не уверен насчет других, но изменения, которые я сделал в файле Bundle.config, не были получены до тех пор, пока я не перестроил проект.
Я думаю, компилятор включает информацию в скомпилированную DLL и больше не смотрит на Bundle.config.
Я использую приложение ASP.NET формы, хотя, не уверен насчет MVC.
Ответ 11
Проверьте, есть ли в вашем пакете минимизированные (... min.js) файлы.
bundles.Add( ... minified files???
));
Удалите их из пакета и визуализируйте в файле _layout.cshtml:
@Styles.Render("~/Content/fontawesome-free-5.10.1-web/css/all.min.css")
Или добавьте в пакет неинициализированную версию вашего css.
Ответ 12
Мое решение было таким же, как @GraehamF, у меня были проблемы, когда @imports пытался загрузить css, когда вы проверяли с помощью инструментов dev пакет css, если вы видите что-то вроде "ошибки времени выполнения", это означает, что файл неправильно загружен.
Перед развертыванием удалите debug = "true" в вашем файле web.config, затем попробуйте запустить код на локальном компьютере, который должен дать вам представление о том, какие файлы не загружаются и что пакет не работает.