Я пытаюсь перенести мой CSS в Scss для приложения PHP, но я не уверен в правильном рабочем процессе для создания файлов CSS. я использую scssphp, это компилятор для scss, написанный на PHP.
На всех своих страницах я использую следующую таблицу стилей: 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? Я всегда мог просто копировать и вставлять каждый раз, но это не очень эффективно.
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);
Увидеть http://leafo.net/scssphp/.
Вам придется заменить css/mycss.css
с mywebsite/style.php/mycss.scss
на всех ваших страницах.
<link rel="stylesheet" href="/mywebsite/style.php/mycss.scss">
Теперь scssphp попытается прочитать mycss.css из своего кэша или скомпилировать его.
но я не думаю, что это лучший способ работать с scss. Я рекомендую использовать один из официальных Sass программы или событие хрюкать автоматизировать вещи.