rake assets:precompile throws Sass:: SyntaxError: недопустимый CSS после "*/"
Я надеюсь, что это не дубликат проблемы; я пробовал другие решения на SO без эффекта
при нажатии моего приложения на Heroku толчок не удался, потому что приложение.css не удалось скомпилировать.
мой вывод терминала:
Running: rake assets:precompile
rake aborted!
Sass::SyntaxError: Invalid CSS after " */": expected selector, was "@font-face"
(in /tmp/build_17e92975-ae8d-446f-8678-110eeeccfb64/app/assets/stylesheets/adminsite/application.css)
(sass):1845
попытки решения
Я искал и удалял каждый экземпляр"*/", который появляется перед @font-face внутри ../ таблицы стилей / adminsite / каталог. Тот же вопрос и результат.
Я пробовал параметр:
config.assets.compile = true
...Тот же вопрос
редактировать
вот мое заявление.css (не первый уровень приложения, но один сбой в каталоге adminsite)
/*
* This is a manifest file that'll be compiled into application.css, which will include all the files
* listed below.
*
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
* or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
*
* You're free to add application-wide styles to this file and they'll appear at the top of the
* compiled file, but it's generally better to create a new file per style scope.
*
*= require jquery.ui.all
*= require_self
*= require normalize
*= require ./global/plugins/bootstrap/css/bootstrap
*= require ./global/plugins/uniform/css/uniform.default
*= require ./global/plugins/bootstrap-switch/css/bootstrap-switch
*= require ./global/css/components
*= require ./global/css/plugins
*= require ./global/plugins/simple-line-icons/simple-line-icons
*= require ./admin/layout/css/layout
*= require ./admin/layout/css/themes/light2
*= require ./admin/layout/css/custom
*/
удалив и recompliling, я обнаружил, что
*= require ./global/plugins/font-awesome/scss/font-awesome
это было 3 из нижней части этого списка, вызывало его сбой. Теперь я могу локально запустить
rake assets:precompile --trace RAILS_ENV=production
но я не могу нажать на heroku используя
git push herokunb newbeta:master
решила:
это был шрифт awesome CSS. Удаление этого из require исправлено. Вопрос оказался нерешенным только из-за моих собственных ошибок с git.
6 ответов
несмотря на то, что вы нашли способ исправить это, я собираюсь поделиться своим решением тоже, потому что я столкнулся с той же проблемой, и было трудно отладить его.
вы, вероятно, используете rails
3.2, sass-rails
3.2 и font-awesome-sass
4.1.
получается, что rails
3.2 использует sass-rails
3.2.6, от которой зависит sass
>= 3.1. Однако, похоже sass
3.1 не совместимы с font-awesome
4.1, поэтому я эксплицитно установил sass
gem для использования версии 3.2 на моем Gemfile.
gem 'sass-rails', '~> 3.2.6'
gem 'sass', '~> 3.2.0'
надеюсь, это поможет кому-то! ;)
решение
файл, который ломал вещи, был шрифтом awesome CSS. Удаление из приложения.строки "require" css позволили предварительной компиляции работать.
способ сделать это состоял в том, чтобы сначала удалить все поля precompilation require, показывая, что он будет компилироваться, а затем медленно добавить поля require, чтобы увидеть, где он сломался.
(спасибо всем, кто помог разобраться.)
Я новичок в rails и имел аналогичную проблему при нажатии на heroku. Друг посмотрел мое заявление.css файл и заметил, что у меня есть
*= require bootstrap
и
*= require bootstrap-datetimepicker
ниже */
удаление их позволило мне успешно нажать.
Я столкнулся с аналогичной проблемой и наткнулся на эту тему. Оказалось, что я оставил a } в конце одного из моих CSS-операторов. Добавил его, и я вернулся через несколько минут.
другой способ решить эту проблему-явно сказать конвейеру активов использовать css-версию актива над scss. Например, если вы импортируете .файл scss в вашем приложении.scss вот так:
@import "angular-material"; # this will use scss version of the asset
вы можете альтернативно сказать ему использовать версию css следующим образом:
@import "angular-material.css"; # this will use the css version
большинство поставщиков предоставляют версии scss и css, поэтому полезно полагаться на версии CSS активов, особенно при использовании активов поставщика. Помню, все будет precompiles и uglified в конце концов, поэтому вы используете scss или css, все они заканчиваются одинаково.