SCSSPHP忽略@import指令或相对路径问题?

时间:2014-07-28 18:10:29

标签: php twitter-bootstrap sass

我使用SCSSPHP,我的文件夹结构如下:

/app/assets
        /css
            /css.php
            /mysite.scss
            /bootstrap
                /bootstrap.scss
                    /bootstrap
                        /_variables.scss
                        /... more bootstrap stuff ...

我的css.php看起来像这样:

<?php

    require "../../vendor/scssphp/scss.inc.php";

    scss_server::serveFrom(".");

现在,当我尝试加载URL /assets/css/css.php/bootstrap/bootstrap.scss时,我得到的只是文件的原始内容。例如。在SCSS处理过程中似乎忽略了所有@import指令。

/* compiled by scssphp v0.0.12 on Mon, 28 Jul 2014 14:04:38 -0400 (0.025s) */

@import "bootstrap/variables";
@import "bootstrap/mixins";
@import "bootstrap/normalize";
/* ... more bootstrap stuff ... */

我的假设是SCSSPHP并不喜欢相对路径,即使它们是正确的。所以我更改了variables导入以生成相对于css.php文件的路径:

@import "bootstrap/bootstrap/variables";
@import "bootstrap/mixins";
@import "bootstrap/normalize";
/* ... more bootstrap stuff ... */

之后,SCSSPHP似乎也认识了这条道路。但它只剥离了import指令,并留下了这个渲染的CSS:

/* compiled by scssphp v0.0.12 on Mon, 28 Jul 2014 14:06:25 -0400 (0.129s) */

/* NOTICE: variables missing! */
@import "bootstrap/mixins";
@import "bootstrap/normalize";
/* ... more bootstrap stuff ... */

查看缓存的SCSS文件夹,我看到缓存的引导程序导入了CSS,其行为就像它确实找到要导入的文件一样,但实际上并没有导入!

a:1:{i:0;s:37:"./bootstrap/bootstrap/_variables.scss";}

不确定还有什么可以尝试。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以告诉SCSSPHP查找相对于文件实际路径的导入,因此您必须这样做

$scss->addImportPaths('app/assets/css/bootstrap/');

(或建立您的调用)根据实际SCSS文件的路径查找导入的文件,请参阅:Documentation - scssphp / Import Paths