MyM*_*ial 4 css sass compass-sass
要在多个目录中编译.scss文件,我们需要使用"add_import_path"(http://compass-style.org/help/tutorials/configuration-reference/),但我不明白.
我试过补充一下
additional_import_paths
add_import_path "_themes"
add_import_path = "_themes"
additional_import_paths = "_themes"
Run Code Online (Sandbox Code Playgroud)
在我的config.rb中,但没有运气,Compass仅从sass_dir ="_modules"进行编译
更新:是的,这一行
add_import_path "_themes"
Run Code Online (Sandbox Code Playgroud)
不会给我们"找不到文件夹"错误,但指南针仍然没有编译.scss
我究竟做错了什么?
这里有一个公认的答案,但我不认为它回答了这个问题,但提供了另一种解决方案.这绝对没问题,我不是想侮辱任何人,但这里没有的是关于add_import_path它的信息以及它为你做了什么.
如果有人曾经在Magento工作,那么你就熟悉它的主题和模板文件的后备结构.为了设置使用相同默认外观的多个商店,我们需要包含一个回退结构,允许对预定义的层次结构进行更改.所以检查dis config.rb文件
myThemeA - config.rb
require "font-awesome-sass"
http_path = "/skin/frontend/rwd/myThemeA/"
add_import_path "../../../rwd/default/scss"
css_dir = "../css"
sass_dir = "../scss"
images_dir = "../images"
javascripts_dir = "../js"
fonts_dir = "../css/fonts"
relative_assets = true
output_style = :expanded
environment = :production
sourcemap = true
Run Code Online (Sandbox Code Playgroud)
myThemeB - config.rb
require "font-awesome-sass"
http_path = "/skin/frontend/rwd/myThemeB/"
add_import_path "../../../rwd/default/scss"
additional_import_paths = ["../../../rwd/myThemeA/scss"]
css_dir = "../css"
sass_dir = "../scss"
images_dir = "../images"
javascripts_dir = "../js"
fonts_dir = "../../myThemeA/css/fonts"
relative_assets = true
output_style = :expanded
environment = :production
sourcemap = true
Run Code Online (Sandbox Code Playgroud)
所以这里的想法是我们有三个皮肤,我们可以使用导入路径只覆盖某些文件,而不是在每个皮肤中包含每个文件.这也意味着,当我们想要进行全局变化时,取决于我们所做的改变,我们没有做出3次改变 - 只有它依赖于链中的位置.
所以...
默认是所有皮肤的基础
myThemeA本身就是皮肤,默认使用默认值
myThemeB使用myThemeA作为默认值,而myThemeA使用默认值作为默认值.
这项工作的成果是add_import_path和的位置additional_import_paths.本质上,它使用add_import_path定义的第一个作为默认值,然后后续additional_import_paths数组将覆盖其中的内容add_import_path,但是除了附加内容之外的任何内容,它将在默认情况下查找.
希望这对任何寻找有关导入路径的更多信息的人都有意义.