Sgo*_*kes 3 windows yui-compressor symfony assetic
我正试图让yui压缩机运行资产,如果这是运行的话,那就是sass.现在,两者都不起作用.从config.yml和twig模板中删除所有过滤器时,它可以工作并php app/console assetic:dump复制css和js文件.
现在我想添加yui压缩器,我的config.yml看起来像这样:
assetic:
debug: %kernel.debug%
use_controller: false
filters:
yui_js:
jar: %kernel.root_dir%/Resources/java/yuicompressor-2.4.6.jar
Run Code Online (Sandbox Code Playgroud)
将过滤器添加到模板并再次运行assetic:dump会在以下错误中结束(由我翻译消息):
[RuntimeException]
The syntax for filename, directory name or drive name is wrong
Run Code Online (Sandbox Code Playgroud)
我找到一篇文章告诉我指定java.exe的路径,所以我将它添加到config.yml:
assetic:
..
java: C:/Program Files (x86)/Java/jre6/bin/java.exe
..
Run Code Online (Sandbox Code Playgroud)
现在资产:转储告诉我:
[RuntimeException]
The COMMAND "C:/Program" is either written wrong or
Run Code Online (Sandbox Code Playgroud)
我尝试在配置中使用两个变量(使用\或\而不是/,添加单引号或双引号,使用短别名Progra~1或Progra~2),但我没有得到任何结果.这两个错误一直在增加.也许有人可以指出我正确的方向.
好的,我明白了.伙计,这个是残酷的.
让我们从简单的东西开始吧.config.yml的工作版本可能如下所示:
assetic:
debug: false
use_controller: false
java: C:\Program Files (x86)\Java\jre6\bin\java.exe
sass: C:\Program Files (x86)\Ruby192\bin\sass.bat
filters:
scss: ~
yui_js:
jar: %kernel.root_dir%\Resources\java\yuicompressor-2.4.6.jar
Run Code Online (Sandbox Code Playgroud)
出于某种原因,assetic总是导入scss的整个目录,所以我必须创建一个combine.scss,它以正确的顺序导入其他scss文件.
现在它变得丑陋,因为必须改变资产核心才能实现这一目标.资产的开发人员知道这个错误,我认为它在一些开发中继/分支中修复,但不是稳定的.
该Assetic \的Util \的ProcessBuilder有95行改变
if (defined('PHP_WINDOWS_VERSION_MAJOR')) {
Run Code Online (Sandbox Code Playgroud)
,第103行
$script .= ' '.implode(' ', array_map('escapeshellarg', $args));
Run Code Online (Sandbox Code Playgroud)
和110行
return new Process($script, $this->cwd, null, $this->stdin, $this->timeout, $options);
Run Code Online (Sandbox Code Playgroud)
我希望这个错误很快得到解决,直到那时任何试图让它工作的人都能找到这个主题...让我感受到8个小时的调试,阅读和尝试不同的方法.
| 归档时间: |
|
| 查看次数: |
4643 次 |
| 最近记录: |