SCSS如何定位部分?

时间:2014-12-03 22:07:14

标签: sass zurb-foundation

我正在查看bower foundation project,并且我对项目如何找到部分内容感到困惑。特别是,我正在查看我不太了解的_settings.scss that has a relative reference in it

在第58行有一个对foundation/functions的引用,但这个部分(_functions.scss)是设置部分的兄弟。我很困惑为什么在该行上有对父目录foundation的引用。我也很困惑这是如何工作的。为什么设置文件不会在同一级别查找名为foundation的目录?

2 个答案:

答案 0 :(得分:1)

如果您尝试导入不存在的文件,答案会变得清晰。以下是当您尝试import "foo";(不存在)时http://sassmeister.com/上生成的错误的摘录:

File to import not found or unreadable: foo.
Load paths:
  /app
  /app/lib/sass_modules
  /app/vendor/bundle/ruby/2.0.0/gems/compass-0.12.6/frameworks/blueprint/stylesheets
  /app/vendor/bundle/ruby/2.0.0/gems/compass-0.12.6/frameworks/compass/stylesheets
  /app/vendor/bundle/ruby/2.0.0/gems/susy-1.0.9/sass

如果Sass开始搜索相对于每个目录的请求文件,直到找到它为止。

对于vanilla Sass,可以通过--import-path选项添加额外的路径:

sass --watch test.scss:test.css --load-path ../path/to/lib/ --load-path ../path/to/otherlib/

指南针用户会在其config.rb中使用additional_import_pathsadd_import_path(请参阅:http://compass-style.org/help/documentation/configuration-reference/

add_import_path "../path/to/lib/"

只有基金会的作者可以回答您关于为什么他们会以这种方式编写导入的具体问题。但这就是它起作用的原因。

答案 1 :(得分:0)

查看config.rb的第2行

add_import_path "bower_components/foundation/scss"

如果你看一下文件中的sass,bower_components / foundation / _foundation.scss只是为基础/组件中的其余组件提供了全面的导入