scssphp

时间:2017-01-24 15:32:27

标签: php sass

我正在使用scssphp通过PHP将我的SCSS文件直接转换为CSS文件。

但是现在我有一个问题,使这项工作。我认为文档有点缺乏,因为我似乎无法弄明白。我有一个index.php文件和一个createsass.php文件。

的index.php:

<?php defined( '_JEXEC' ) or die; 
require 'css/createsass.php';
include_once JPATH_THEMES.'/'.$this->template.'/logic.php';

在PHP逻辑中,我添加了createsass.php

$doc->addStyleSheet($tpath.'/css/createsass.php');

createsass.php:

require "scss.inc.php";
$scss = new scssc();
echo $scss->compile('@import "template.scss"');

但是现在我的主体中有<head>的非常奇怪的渲染页面,以及我内容中的文本“@import template.scss”。你到底怎么做这个工作?

weird text above content and head content in body

3 个答案:

答案 0 :(得分:0)

我在代码库(0.6.6)或scssphp文档中没有看到scssc类。 根据文档,您应该使用Compiler类。

use Leafo\ScssPhp\Compiler;

$scss = new Compiler();

答案 1 :(得分:0)

无论你使用什么模板是一些问题,它都是可能的。首先要检查的是直接命中php文件的输出。如果它没有给你正确的输出,那么我认为这可能是两个问题之一:

  1. 在包含路径中找不到您的文件。来自文档:
  2.   

    使用@import指令导入文件时,默认情况下将PHP脚本的当前路径用作搜索路径。这通常不是您想要的,因此有两种操作导入路径的方法:addImportPathsetImportPaths

    见这里:http://leafo.net/scssphp/docs/#import_paths

    1. 您的文件名称不正确。 @import('template.scss')会导致导入名为_template.scss
    2. 的文件

答案 2 :(得分:0)

  

scssphp附带了一个易于使用的类,它自动编译修改后的scss文件,并从您指定的目录中提供它们。

http://leafo.github.io/scssphp/

将您的createsass.php文件移至根目录,然后更改内容以匹配scssphp网站上提供的内容。

<?php
require "path/to/scssphp/scss.inc.php";

use Leafo\ScssPhp\Server;

$directory = "css";

Server::serveFrom($directory);

确保template.scss(而不是_template.css)位于css目录中。然后更新代码以将css添加为:http://example.com/createsass.php/style.scss(尽管您可能希望将createsass.php重命名为其他内容)。

还有一点需要注意:

  

scssphp将自动在stylesheets目录中创建一个scss_cache目录,它将缓存已编译的输出。这样,如果没有进行任何修改,它可以快速提供文件。您的PHP脚本必须具有在scss_cache中写入的权限。