1

我只是在学习 Sass 并试图弄清楚我的工作流程。问题是很多时候我的 CSS 文件中有 PHP 代码(自动版本控制、路径变量等)。有什么方法可以跳过 SASS(SCSS 文件)中的 PHP 代码。

编辑:我必须澄清有问题的 CSS 文件确实是动态的,所以我的 example.css.php -file 运行一些 PHP 并以某种方式依赖于网络服务器状态。(静态 CSS 文件没有问题)。

如果我创建简单的 SCSS 文件,我会收到 PHP 代码错误。有什么想法吗?...有人对 Sass-parser 进行了任何修改以跳过 sass 中的脚本代码吗?

示例 test.scss:

$backg: #fa0;

#wrapper {
  color: #000;
  background-color: $backg;
}

<?php echo ""; ?>

编辑:我想到了一个“黑客”。我可以使用 SASS /* */ comments 注释掉所有 PHP 代码行,然后使用一些脚本去除注释字符并显示 PHP 以获得正确的结果......

例如

// This is an example SCSS-snippet with commented PHP code lines in it...
.foo {
  color: $someColor;
  /* background: transparent url(<?php echo autoVer('../', 'img/badge.png'); ?>) no-repeat center top; */
4

2 回答 2

1

默认情况下,您的 Web 服务器不会像 php 那样处理 css/scss 文件。您可以在 Nginx/Apache 设置中配置它,但它实际上是黑色编码

于 2013-11-15T11:08:48.260 回答
1

PHP 通常在特定 HTTP 请求的上下文中扩展文件。SCSS->CSS 转换通常发生在静态文件上。您希望您的 SCSS 依赖于来自用户的数据还是网络会话?如果是这样,您必须在运行 PHP 后运行 Sass 以获取 CSS,否则您最好的方法可能是添加一个 Makefile 规则,以便通过 PHP 运行 foo.scss.php 然后通过 Sass。

我还应该指出,无论如何,你用 PHP 对 CSS 所做的事情很有可能很容易用 SCSS 完成,所以一旦转换完成,你可能不需要 PHP。

于 2013-11-15T11:08:56.050 回答