2012-03-08 21 views
2

其實,這是兩個問題:如何在Windows下使用Symfony2中的SCSS過濾器?

  1. 什麼是Windows使用SCSS過濾器在我的Symfony項目的正確方法(在嫩枝模板)? 我的意思是,我如何在Windows中使用scss二進制文件?

  2. 另外,我是否需要使用Compass?和「如何」,如果我安裝了它,我會使用羅盤嗎?

擴展:下面是一些配置我做:

應用程序/配置/ config.yml

assetic: 
debug:   %kernel.debug% 
use_controller: false 
filters: 
    scss: 
     bin: "%kernel.root_dir%/Resources/libs/scss" 
    compass: 
     bin: "%kernel.root_dir%/Resources/libs/compass" 

在我的樹枝文件:

{% stylesheets 
     '@PlaylyfeBaseBundle/Resources/public/css/base.scss' 
     '@PlaylyfeBaseBundle/Resources/public/css/another.scss' 
    filter='scss' 
    output='css/compiled/total.css' 
%} 
<link rel="stylesheet" href="{{ asset_url }}" /> 
{% endstylesheets %} 

但是,當我加載網頁,我得到以下錯誤(CSS文件中)

[exception] 500 | Internal Server Error | RuntimeException 
[message] The filename, directory name, or volume label syntax is incorrect. 

[1] RuntimeException: The filename, directory name, or volume label syntax is incorrect. 
at n/a 
in C:\wamp\www\Symfony\vendor\assetic\src\Assetic\Filter\Sass\SassFilter.php line 162 

at Assetic\Filter\Sass\SassFilter-&gt;filterLoad(object(Assetic\Asset\FileAsset)) 
in C:\wamp\www\Symfony\vendor\assetic\src\Assetic\Filter\FilterCollection.php line 62 

at Assetic\Filter\FilterCollection-&gt;filterLoad(object(Assetic\Asset\FileAsset)) 
in C:\wamp\www\Symfony\vendor\assetic\src\Assetic\Asset\BaseAsset.php line 83 

at Assetic\Asset\BaseAsset-&gt;doLoad(&#039 
+0

目前還沒有 「正確」 的答案了...... 對於記錄,我目前正在做的是,我正在運行scss到css轉換器,並在* watch *標誌的背景下,以便在編輯我的scss文件時,新的css文件將在飛行中生成。 – 2012-03-15 11:06:41

回答

4

我只能說Compass,因爲我使用的是相同的問題/問題很可能與SASS/SCSS過濾器有關。

有指南針許多已知的文件路徑問題,在Windows系統上:

...並且還修復建議Assetic來對付他們:

我發現那麼做以下事情對於萬事俱備是必要的...

#1。確保%ruby%\bin是在您的環境PATH變量:

例子: PATH = "...;C:\Ruby\1.9.2\bin"

#2。編輯%ruby%\bin\compass.bat使用絕對路徑:

@ECHO OFF 
IF NOT "%~f0" == "~f0" GOTO :WinNT 
@"C:\Ruby\1.9.2\bin\ruby.exe" "C:/Ruby/1.9.2/bin/compass" %1 %2 %3 %4 %5 %6 %7 %8 %9 
GOTO :EOF 
:WinNT 
@"C:\Ruby\1.9.2\bin\ruby.exe" "%~dpn0" %* 

#3。在compiler.rb手動恢復539f206 @行〜10:

注:這一步可能不是最新的Ruby /北斗版本是必需的。 (Reference

路徑:%ruby%\lib\ruby\gems\1.9.1\gems\compass-*\lib\compass\compiler.rb

#  self.from, self.to = from.gsub('./', ''), to 
     self.from, self.to = File.expand_path(from), to 

#4。確保Assetic正確配置:

例(config.yml):

assetic: 
    debug:   %kernel.debug% 
    use_controller: false 
    filters: 
     cssrewrite: ~ 
     compass: 
      bin: %compass.bin% 
     yui_js: 
      jar: %kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar 
     yui_css: 
      jar: %kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar 

我用%compass.bin%在我的參數文件,這樣就可以緩解Windows和* nix系統之間的代碼庫的過渡,所以我parameters.yml看起來是這樣的:

# Assetic 
compass.bin: C:\Ruby\1.9.2\bin\compass.bat 

#5。 (可選)升級Assetic和AsseticBundle:

我有Assetic和AsseticBundle標記到最後可能犯下與Symfony的2.0.x的作品在我的deps文件:

[assetic] 
    git=http://github.com/kriswallsmith/assetic.git 
    version=ac71449e46bed22c276da26bf54ab2f733b3801d 

[AsseticBundle] 
    git=http://github.com/symfony/AsseticBundle.git 
    target=bundles/Symfony/Bundle/AsseticBundle 
    version=da4a46ce37557dcf3068b8493b12bdbbe47455e2 

請務必將%ruby%在所有上述路徑與您的實際路徑ruby.exe,我的C:\Ruby\1.9.2

步驟#2和#4可能需要也可能不需要,但是在我與這個問題鬥爭的過程中,這是我結束了,我的設置工作(這是我所關心的!) 。

祝你好運!


方問題:是您在%kernel.root_dir%/Resources/libs路徑SCSS /北斗雙星真的嗎?

+0

回答2你的側面問題:是的,我專門爲此做了一個目錄... – 2012-03-15 11:04:36

+0

我正在使用Zend並找不到config.yml。思考http://stackoverflow.com/questions/11054715/how-can-i-get-assetic-to-compile-scss-on-zend-framework-on-windows? – Ryan 2012-06-15 23:25:00

1
  1. 不幸的是,樹枝SCSS擴展的窗戶破了。這是一個已知的問題。我花了一些時間試圖想出一個解決方法,但沒有提供。我發現最好只使用帶有--watch參數的scss可執行文件來簡單地創建css文件並將它們存儲在Resource/public目錄中。這也可以簡化一些部署問題,因爲您不必擔心在服務器上安裝scss。

  2. scss不需要使用指南針。把它想象成一個有用的css庫。例如,如果您曾經想要做css圓角邊緣,Compass mixin將生成所有供應商特定的自定義標籤。有關使用它的詳細信息,請參閱文檔。

+0

aah .... ok ...這使得它更清晰。 非常感謝 – 2012-03-08 19:43:07

-1

在我的情況下尋找並試圖許多解決方案小時後,這個工作對我來說:

在 '應用程序/配置/ config.yml' 添加:

parameters: 
# Assetic 
assetic.filter.compass.bin: D:/Ruby193/bin/compass 

d:/ Ruby193 /箱/羅盤將取決於你的Ruby路徑。

見截圖: http://s23.postimg.org/3n2oc5wh7/MY_SOLUTION_THAT_I_FOUND.jpg

我的系統: Windows 7旗艦版, 紅寶石1.9.3, Symfony的2.4.3

相關問題