我正在尝试为 OpenCart v3 创建一个主题,并且像它的默认主题一样,我也在使用引导框架。没有具有 SCSS/SASS 扩展名的文件,但每次我刷新页面时,它都会查看 bootstrap.min.css 文件,并以某种方式将其分解为 scss 文件并再次编译。因此,默认引导程序覆盖了我所有的样式。
我记得我曾经不小心单击了 scss clean cache 按钮,但这并不意味着我允许它一次又一次地破坏和重新编译引导程序,即使 scss make cache 选项已打开。
它提出了这些链接。
这是一个示例,用于解释从检查元素复制的关于在主题的任何地方都没有边框半径的问题:
// ...opencart/catalog/view/javascript/bootstrap4/css/bootstrap.min.css
.dropdown-menu {
position: absolute;
top: 100%;
left: 0;
z-index: 1000;
display: none;
float: left;
min-width: 10rem;
padding: .5rem 0;
margin: .125rem 0 0;
font-size: 1rem;
color: #212529;
text-align: left;
list-style: none;
background-color: #fff;
background-clip: padding-box;
border: 1px solid rgba(0,0,0,.15);
border-radius: .25rem;
}
// .. opencart/catalog/view/theme/alpha/stylesheet/theme.css
.dropdown-menu, * {
border-radius: 0;
}
如何永久停止 scss 编译器?或者另一方面,如果我更喜欢编写自己的 Scss 文件而不是 CSS,那么 OpenCart 是否也会在开发阶段编译它,我是否需要像往常一样使用终端?
在 OpenCart 中找到以下代码,但我不明白:
class ControllerStartupSass extends Controller {
public function index() {
$file = DIR_APPLICATION . 'view/theme/' . $this->config->get('theme_directory') . '/stylesheet/bootstrap.css';
if (!is_file($file) || (is_file(DIR_APPLICATION . 'view/theme/' . $this->config->get('theme_directory') . '/stylesheet/sass/_bootstrap.scss') && !$this->config->get('developer_sass'))) {
include_once(DIR_STORAGE . 'vendor/scss.inc.php');
$scss = new Scssc();
$scss->setImportPaths(DIR_APPLICATION . 'view/theme/' . $this->config->get('theme_directory') . '/stylesheet/sass/');
$output = $scss->compile('@import "_bootstrap.scss"');
$handle = fopen($file, 'w');
flock($handle, LOCK_EX);
fwrite($handle, $output);
fflush($handle);
flock($handle, LOCK_UN);
fclose($handle);
}
}
}