我遇到了将我的Ruby项目部署到Heroku的问题。我一直在搜索,但还没有找到解决方案。我的错误是:
remote: Sass::SyntaxError: Invalid CSS after "...able_background": expected ")", was ": #808080,"
remote: (in /tmp/build_4a9e512f14d76b318d2a93f5bcb4db07/app/assets/stylesheets/sass/admintable.scss:2)
remote: /tmp/build_4a9e512f14d76b318d2a93f5bcb4db07/app/assets/stylesheets/sass/admintable.scss:2
我所指的scss代码是第二行:
$admin_table_colors:(
admin_table_background: #808080,
admin_table_header_background: #FF6347,
admin_table_header_font: orange,
admin_table_data_background: #808080
);
我的宝石文件:
source 'https://rubygems.org'
gem 'rails', '4.2'
gem 'bcrypt', '3.1.11'
gem 'sass-rails', '4.0.2'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'devise'
gem 'jquery-rails'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0', group: :doc
gem 'omniauth'
gem 'omniauth-facebook'
gem 'turbolinks'
gem "pundit"
gem "tzinfo-data"
gem 'lodash-rails'
group :production do
gem 'pg'
end
group :test, :development do
gem "rspec-rails"
gem "capybara"
gem "launchy"
gem "rack_session_access"
gem "selenium-webdriver"
gem "better_errors"
gem "factory_girl_rails"
gem "simplecov"
gem "database_cleaner"
gem "pry"
gem "sqlite3"
gem "guard-rspec", require: false
gem "thin"
gem "dotenv-rails"
end
gem "bootstrap-sass", "~> 3.1.1"
gem "faker"
gem "friendly_id"
在我的环境生产文件中,我有这个集合:
config.assets.compile = true
我没有.css文件.scss。我应该将它们转换为css并删除我的scss文件进行部署吗?也许我的宝石版本不合适?任何能够解决这个错误的见解都会很棒。
答案 0 :(得分:0)
您的错误消息告诉所有内容。您在app/assets/stylesheets/sass/admintable.scss
的第2行上有CSS语法错误。
确保CSS有效。您可以在本地测试以验证您已使用rails assets:precompile
修复了问题。
答案 1 :(得分:0)
尝试以下代码:
config.assets.compile = true
然后运行命令:
RAILS_ENV=production rake assets:clean
RAILS_ENV=production rake assets:precompile
然后将所有编译文件和清单文件推送到heroku。
答案 2 :(得分:0)
我找到了解决问题的方法。虽然我相信我的scss代码是正确的,但预编译部分存在问题。我必须在我的所有scss文件中更改我的地图代码,其中一个示例是此代码:
$admin_table_colors:(
admin_table_background: #808080,
admin_table_header_background: #FF6347,
admin_table_header_font: orange,
admin_table_data_background: #808080
);
我不得不将其更改为:
$admin_table_colors:(
'admin_table_background' #808080,
'admin_table_header_background' #FF6347,
'admin_table_header_font' orange,
'admin_table_data_background' #808080
);
然后我不得不改变我的地图获取。我之前得到过这些地图:
map-get($map: $admin_table_colors, $key: admin_table_background);
然后将其更改为:
map-get($admin_table_colors, 'admin_table_background');
我让它部署,但是我的网站没有加载,我不知道这是否与该更改有关,或者它是其他的。