如何在Middleman 4中导入.scss.erb文件?
我刚从Middleman 3升级到4.我认为这是我的最后一期......
我有一个all.css.scss
文件,如下所示:
@charset "utf-8";
@import "settings";
@import "imports";
@import "base";
@import "signature_pad"
除导入外,所有文件都导入。
与settings
的区别在于它是_imports.scss.erb
然后,当我尝试加载all.css时,我得到了这个:
Error: File to import not found or unreadable: imports.
Load paths:
/Users/myMyserId/apps/projectName/source/assets/css
/Users/myUserId/.rvm/gems/ruby-2.0.0-p451/gems/compass-core-1.0.3/stylesheets
Compass::SpriteImporter
/Users/myUserId/apps/projectName/source/assets/css
/Users/myUserId/.rvm/gems/ruby-2.0.0-p451/gems/compass-core-1.0.3/stylesheets
Compass::SpriteImporter
/Users/myUserId/apps/projectName/source/assets/css
/Users/myUserId/.rvm/gems/ruby-2.0.0-p451/gems/compass-core-1.0.3/stylesheets
Compass::SpriteImporter
on line 4 of /Users/myUserId/apps/projectName/source/assets/css/all.css.scss
我认为问题是erb在使用.scss之前没有处理文件。
答案 0 :(得分:6)
与设置的区别在于它是_imports.scss.erb
这是你的问题。中间人本身并没有触及任何领先的下划线。处理.scss文件,因为这是SASS正在进行的工作。
我正在使用的解决方案(直到找到另一个)是构建第二个css文件并将其包含在我的布局中。
在您的情况下,您可以尝试删除下划线;没有.css后缀,它不应该包含在输出中。
答案 1 :(得分:2)
以下是使其正常运行的示例:
// all.css.scss.erb
<%= partial './_settings.scss' %>
// rest of css…
设置文件为
_settings.scss.erb
all.css.scss
和那就是说,我强烈建议调查Middleman 4中的外部管道功能。它非常强大,可以更好地处理SASS / SCSS。
答案 2 :(得分:1)
每this forum post添加链接使得导入工作就像以前一样。
在Gemfile中,使用从步骤1中选择的gemfiles添加sprockets和rails-assets块:
# Gemfile
gem 'middleman-sprockets', '4.0.0.rc.3'
source 'https://rails-assets.org' do
gem 'rails-assets-bootstrap-autohidingnavbar', '1.0.0'
gem 'rails-assets-jquery', '2.1.1'
gem 'rails-assets-slick.js', '1.5.7'
end
在config.rb中,添加以下块以启用资产管道并将RailsAssets gems添加到加载路径:
# config.rb
# General configuration
activate :sprockets
if defined? RailsAssets
RailsAssets.load_paths.each do |path|
sprockets.append_path path
end
end