css - Rails 5 - Heroku:预编译资产失败(Sass::SyntaxError: Invalid CSS after "...lflings-regular": expected ")
问题描述
我正在尝试将教程博客 rails (5.2.1) 应用程序推送到 heroku。我已经检查了关于 SO 的所有类似问题,但没有找到答案。我得到的错误是:
remote: -----> Detecting rake tasks
remote: -----> Preparing app for Rails asset pipeline
remote: Running: rake assets:precompile
remote: Yarn executable was not detected in the system.
remote: Download Yarn at https://yarnpkg.com/en/docs/install
remote: I, [2020-02-21T17:17:19.342502 #751] INFO -- : Writing /tmp/build_9a4b8f93edcb6949bd3f6eab0443fee7/public/assets/blog-c4dff50241ee865870a1e61848b014b1bfe41645844507124353abe96a2d563a.jpg
remote: I, [2020-02-21T17:17:19.348422 #751] INFO -- : Writing /tmp/build_9a4b8f93edcb6949bd3f6eab0443fee7/public/assets/workplace-8b957cb3928834865a124fc613d371b51b2bd32f806caa4fef1d538ea6af0bcf.jpg
remote: I, [2020-02-21T17:17:24.225768 #751] INFO -- : Writing /tmp/build_9a4b8f93edcb6949bd3f6eab0443fee7/public/assets/application-b0891f71e83fe8da7539d2c04309266db2d56be33bf3a5453b8ada6570a61a16.js
remote: I, [2020-02-21T17:17:24.226500 #751] INFO -- : Writing /tmp/build_9a4b8f93edcb6949bd3f6eab0443fee7/public/assets/application-b0891f71e83fe8da7539d2c04309266db2d56be33bf3a5453b8ada6570a61a16.js.gz
remote: DEPRECATION WARNING on line 12 of /tmp/build_9a4b8f93edcb6949bd3f6eab0443fee7/vendor/bundle/ruby/2.5.0/gems/bootstrap-sass-3.4.1/assets/stylesheets/_bootstrap-mincer.scss:
remote: #{} interpolation near operators will be simplified in a future version of Sass.
remote: To preserve the current behavior, use quotes:
remote:
remote: unquote("\"<%- asset_path(\"#{$path}\".replace(/[#?].*$/, '')) + \"#{$path}\".replace(/(^[^#?]*)([#?]?.*$)/, '$2') %>\"")
remote:
remote: You can use the sass-convert command to automatically fix most cases.
remote:
remote:
remote: DEPRECATION WARNING on line 16 of /tmp/build_9a4b8f93edcb6949bd3f6eab0443fee7/vendor/bundle/ruby/2.5.0/gems/bootstrap-sass-3.4.1/assets/stylesheets/_bootstrap-mincer.scss:
remote: #{} interpolation near operators will be simplified in a future version of Sass.
remote: To preserve the current behavior, use quotes:
remote:
remote: unquote('"<%- asset_path("#{$file}") %>"')
remote:
remote: You can use the sass-convert command to automatically fix most cases.
remote:
remote:
remote: rake aborted!
remote: Sass::SyntaxError: Invalid CSS after "...lflings-regular": expected ")", was ".eot".replace(/..."
remote: (sass):314
remote: /tmp/build_9a4b8f93edcb6949bd3f6eab0443fee7/vendor/bundle/ruby/2.5.0/gems/sass-3.7.4/lib/sass/scss/parser.rb:1308:in `expected'
和:
remote: Tasks: TOP => assets:precompile
remote: (See full trace by running task with --trace)
remote:
remote: !
remote: ! Precompiling assets failed.
remote: !
remote: ! Push rejected, failed to compile Ruby app.
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to alpha-blog-emir.
我的 custom.css.scss 文件是:
$navbar-default-bg: #010101;
@import "bootstrap-mincer";
@import "bootstrap";
#logo {
float: left;
font-size: 1.7em;
color: #fff;
text-transform: uppercase;
letter-spacing: -1px;
font-weight: bold;
}
#logo:hover{
color: #fff;
text-decoration: none;
}
.center{
text-align: center;
}
.jumbotron {
background-image: asset-url('workplace.jpg');
height: 600px;
}
.jumbotron h1{
color: #010101;
text-align: center;
margin-bottom: 30px;
letter-spacing: -1px;
font-weight: bold;
}
.btn-xlarge {
font-size: 1.7em;
background-color: black;
}
.article-actions{
border-top: 1px solid #eaeaea;
padding-top: 5px;
}
.description{
margin-top: 0;
}
.article-title{
font-weight: bold;
font-size: 1.5em;
}
.article-body{
border-top: 1px solid #eaeaea;
padding-top: 15px;
padding-bottom: 15px;
}
footer{
margin-top: 45px;
padding-top: 5px;
border-top: 1px solid #eaeaea;
color: #777;
}
footer a:hover{
color: #222;
}
footer small{
float: left;
}
footer ul{
float: right;
list-style: none;
}
footer ul li{
float: left;
margin-left: 15px;
}
我尝试过使用 rails assets:precompile 命令,但这并没有帮助。我还检查了 custom.css.scss 文件中的错误,但我找不到任何错误。我知道在线上有一些 sass 语法错误:314,但是我怎样才能找到那个错误呢?
解决方案
// Mincer asset helper functions
//
// This must be imported into a .css.ejs.scss file.
// Then, <% %>-interpolations will be parsed as strings by Sass, and evaluated by EJS after Sass compilation.
假设您已经将 EJS 挂接到您的资产管道,您的文件需要命名为custom.css.ejs.scss
.
推荐阅读
- java - 递归创建具有二项式系数的树
- javascript - 如何将每个列表项的观看按钮切换为观看,反之亦然
- c# - 我的代码有什么问题,我想让鸟飞起来?
- java - 带有 500 状态的方法 POST
- vue.js - 如果使用 JWT,如何保护来自访客和角色的路由?
- reactjs - ReactJs 在 react-burger-menu 组件上使用样式 css 模块
- c# - 如何跟踪递归期间发生的更改
- javascript - Nodejs使用mysql续集RangeError
- python - Django:相关字段查找无效:用户
- angular - 如何使用我的 Angular 应用程序发送电子邮件?