2013-11-15 128 views
1

我剛剛學習Sass並試圖找出我的工作流程。問題是很多時候我在我的CSS文件中使用PHP代碼(自動更新,路徑變量等)。有什麼方法可以跳過SASS(SCSS-文件)中的PHP代碼。Sass源代碼中的PHP代碼

編輯:我必須澄清有問題的CSS文件確實是動態的,所以我的example.css.php文件運行一些PHP並以某種方式依賴於Web服務器狀態。 (靜態CSS文件沒有問題)。

如果我創建簡單的SCSS文件,我得到一個PHP代碼錯誤。任何想法?...有人對Sass解析器進行了任何修改以跳過sass中的腳本代碼?

例test.scss:

$backg: #fa0; 

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

<?php echo ""; ?> 

編輯:一個 「黑客」 想到我的腦海裏。我可以使用SASS/* * /註釋將所有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; */ 

回答

1

默認情況下,您的Web服務器不會像php一樣處理css/scss文件。 您可以在Nginx/Apache設置中對其進行配置,但它實際上是黑色編碼

1

PHP通常在特定HTTP請求的上下文中擴展文件。 SCSS-> CSS轉換通常發生在靜態文件上。你希望你的SCSS依賴於來自用戶的數據,還是網絡會話?如果是這樣,那麼在運行PHP獲取CSS之後,您將不得不運行Sass,否則最好的方法可能是通過PHP和Sass添加Makefile規則來運行foo.scss.php。

我還應該指出,無論如何,使用SCSS輕鬆完成PHP的CSS操作很容易,因此轉換完成後您可能不需要PHP。

+0

是的,我的樣式以某種方式依賴於Web服務器/應用程序狀態。所以他們是動態的... – coder