我不知道如果不粘贴所有文件的整个代码我是否可以解释这个问题,但我会尝试.
编辑我已将整个代码添加到Github Account - My Sass结构中
我使用Windows 8.1和Compass 0.12.6
在我的public_html文件夹中,我有config.rb文件和stylesheets文件夹.在stylesheets文件夹中,我有目录sass,我保存所有sass文件.CSS文件生成到样式表/预览文件夹(用于开发目的)和样式表文件夹(用于生产目的).
我运行罗盘观看我在public_html文件夹中运行的watch.bat脚本
watch.bat的内容是:
START compass watch -c config.rb -e development
START compass watch -c config.rb -e production
EXIT
我的config.rb文件是:
require 'compass/import-once/activate'
# Require any additional compass plugins here.
# Set this to the root of your project when deployed:
http_path = "../"
sass_dir = "stylesheets/sass"
images_dir = "img"
javascripts_dir = "js"
cache = false
relative_assets = true
add_import_path "stylesheets/sass"
if environment == :development
    css_dir = "stylesheets/preview"
    line_comments = true
    output_style = :nested
end
if environment == :production
    css_dir = "stylesheets"
    line_comments = false
    output_style = :compressed
end 
在stylsheets/sass中我有4个文件print.scss,medium.scss,small.scss和large.scss
medium.scss和large.scss都以:
@import "base/_init";
此文件从基础文件夹导入部分_init,这个加载另一个部分和其他部分加载另一个部分.
问题是当我改变部分内容时,Compass并不总是编译所有必要的输出文件.例如,我刚刚在_settings.scss中更改了部分内容,而这一个最终由medium.scss和large.scss加载(我提醒那两个文件具有相同的开头,因此它们都应该被编译).事实上,只有medium.scss文件被实际监视,并且没有编译large.scss文件,因为它应该在这种情况下.
我之前就遇到过这样的情况.我停止了2个观察者(CTRL + C和Y)然后再次运行我的watch.bat没有更改文件中的任何内容 - 运行后我有信息:
在15:51:33检测到的更改为:large.scss覆盖样式表/ preview/large.css指南针正在轮询更改.按Ctrl-C停止.
和
在15:51:33检测到的更改为:large.scss覆盖stylesheets/large.css Compass正在轮询更改.按Ctrl-C停止.
所以事实上应该看到变化,但不知何故罗盘/萨斯并不总能抓住它.
有时2名观察者都没有接受更改,我必须停止它们并再次运行watch.bat,因此以这种方式工作并不是很方便.
有时甚至会发生观察者被停止的事情(因为我提出了CTRL + C + y)但是我没有按任何东西而且在cmd中毫无疑问关闭可见.他们刚刚停了下来
问题:可能出现什么问题以及如何解决?
我已经克隆并检查了您的项目结构,而您的问题仅仅是不必要地使用了一次导入插件。如果您在config.rb的第一行(激活此插件的位置)添加注释,则样式表将正常编译。您拥有的每个主要scss文件(large.css,medium.css,small.css)都呈现为单独的CSS文件,并且您无需为每个文件重复导入。
以下是禁用一次导入插件的导入顺序:

| 归档时间: | 
 | 
| 查看次数: | 3209 次 | 
| 最近记录: |