我试图将我的css迁移到scss以获取PHP应用程序,但我对生成css文件的正确工作流程感到困惑。我正在使用scssphp,它是用PHP编写的scss的编译器。
在我的所有页面中,我使用以下样式表:css/mycss.css
。我已将样式表的scss
版本放在css/scss/mycss.scss
中。当我对scss文件进行更改时,我通过进入我的浏览器在本地编译它:
localhost/mywebsite/style.php/mycss.scss
style.php
文件如下:
require "vendor/leafo/scssphp/scss.inc.php";
$scss = new scssc();
$directory = "css/scss";
$server = new scss_server($directory,null,$scss);
$server->serve();
这会编译scss文件并将其写入css/scss/scss_cache
文件夹。文件名是一些哈希。这是我的结果目录结构:
style.php
-css
mycss.css
-scss
mycss.scss
-scss_cache
4edf7f7bf9238jdsk9281sjkj32.css
理想情况下,我希望编译器覆盖css/mycss.css
文件。有没有办法做到这一点,或者用新编译的css替换原始css文件的正确工作流程是什么?我总是可以随时复制和粘贴,但这似乎并不高效。
答案 0 :(得分:12)
scssphp
旨在用于直接提供样式表。但是,如果您只想使用编译器功能,则可以这样做:
require "vendor/leafo/scssphp/scss.inc.php";
$scss = new scssc();
$scssIn = file_get_contents(__DIR__ . '/css/scss/mycss.scss');
$cssOut = $scss->compile($scssIn);
file_put_contents(__DIR__ . '/css/mycss.css', $cssOut);
答案 1 :(得分:4)
您必须在所有网页中将css/mycss.css
替换为mywebsite/style.php/mycss.scss
。
<link rel="stylesheet" href="/mywebsite/style.php/mycss.scss">
scssphp现在尝试从其缓存中读取mycss.css或编译它。
但我不认为这是使用scss的最佳方式。我建议使用官方sass programms或事件grunt之一自动执行操作。