我正在使用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”。你到底怎么做这个工作?
答案 0 :(得分:0)
我在代码库(0.6.6)或scssphp文档中没有看到scssc
类。
根据文档,您应该使用Compiler
类。
use Leafo\ScssPhp\Compiler;
$scss = new Compiler();
答案 1 :(得分:0)
无论你使用什么模板是一些问题,它都是可能的。首先要检查的是直接命中php文件的输出。如果它没有给你正确的输出,那么我认为这可能是两个问题之一:
使用@import指令导入文件时,默认情况下将PHP脚本的当前路径用作搜索路径。这通常不是您想要的,因此有两种操作导入路径的方法:
addImportPath
和setImportPaths
。
见这里:http://leafo.net/scssphp/docs/#import_paths
@import('template.scss')
会导致导入名为_template.scss
答案 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中写入的权限。