如何在 middleman4 中导入 .scss.erb 文件?
How do I import a .scss.erb file in middleman4?
如何在 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 之前没有处理文件。
The difference with settings is that it is _imports.scss.erb
这是你的问题。 Middleman 本身不涉及任何带前导下划线的内容。 .scss 文件被处理,因为那是 SASS 做的工作。
我正在使用的解决方案(直到我找到另一个)是构建第二个 css 文件并将其包含在我的布局中。
对于您的情况,您可以尝试删除下划线;如果没有 .css 后缀,它不应包含在输出中。
这是一个让它工作的例子:
// all.css.scss.erb
<%= partial './_settings.scss' %>
// rest of css…
设置文件为
- 名为
_settings.scss.erb
- 作为
all.css.scss
和 的同级文件
- 然后它可以包含erb代码! :)
也就是说,我强烈建议研究 Middleman 4 中的外部管道功能。它非常强大,可以更好地处理 SASS/SCSS。
每个 this forum post 添加链轮使导入像以前一样工作。
在 Gemfile 中,添加链轮和一个 rails-assets 块,其中包含从步骤 1 中选择的 gemfile:
# 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 gem 添加到您的加载路径:
# config.rb
# General configuration
activate :sprockets
if defined? RailsAssets
RailsAssets.load_paths.each do |path|
sprockets.append_path path
end
end
如何在 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 之前没有处理文件。
The difference with settings is that it is _imports.scss.erb
这是你的问题。 Middleman 本身不涉及任何带前导下划线的内容。 .scss 文件被处理,因为那是 SASS 做的工作。
我正在使用的解决方案(直到我找到另一个)是构建第二个 css 文件并将其包含在我的布局中。
对于您的情况,您可以尝试删除下划线;如果没有 .css 后缀,它不应包含在输出中。
这是一个让它工作的例子:
// all.css.scss.erb
<%= partial './_settings.scss' %>
// rest of css…
设置文件为
- 名为
_settings.scss.erb
- 作为
all.css.scss
和 的同级文件
- 然后它可以包含erb代码! :)
也就是说,我强烈建议研究 Middleman 4 中的外部管道功能。它非常强大,可以更好地处理 SASS/SCSS。
每个 this forum post 添加链轮使导入像以前一样工作。
在 Gemfile 中,添加链轮和一个 rails-assets 块,其中包含从步骤 1 中选择的 gemfile:
# 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 gem 添加到您的加载路径:
# config.rb
# General configuration
activate :sprockets
if defined? RailsAssets
RailsAssets.load_paths.each do |path|
sprockets.append_path path
end
end