如何在middleman4中导入.scss.erb文件?

时间:2016-03-20 13:29:16

标签: css middleman middleman-4

如何在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之前没有处理文件。

3 个答案:

答案 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
  • 的兄弟档案中
  • 然后它可以包含erb代码! :)

那就是说,我强烈建议调查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