windows - Windows 上的 symfony2 assetics yui 压缩器(路径语法)

标签 windows symfony yui-compressor assetic

我正在尝试让 assetics 使用 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

将过滤器添加到模板并再次运行 assetic:dump 以以下错误结束(消息由我翻译):

[RuntimeException]
The syntax for filename, directory name or drive name is wrong

我找到了 an article告诉我指定 java.exe 的路径,所以我将其添加到 config.yml:

assetic:
  ..
  java: C:/Program Files (x86)/Java/jre6/bin/java.exe
  ..

现在 assetic:dump 告诉我:

[RuntimeException]
The COMMAND "C:/Program" is either written wrong or

我尝试在配置中使用这两个变量(使用\或\而不是/,添加单引号或双引号,使用短别名 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

出于某种原因,assetic 总是为 scss 导入整个目录,所以我不得不制作一个 combine.scss 以正确的顺序导入其他 scss 文件。

现在它变得丑陋了,因为必须更改 Assets 核心才能使其正常工作。 assetic 的开发人员知道这个错误,我认为它在一些开发主干/分支中得到了修复,但不是稳定的。

必须在第 95 行更改 Assetic\Util\ProcessBuilder

if (defined('PHP_WINDOWS_VERSION_MAJOR')) {

,第103行

$script .= ' '.implode(' ', array_map('escapeshellarg', $args));

和第 110 行

return new Process($script, $this->cwd, null, $this->stdin, $this->timeout, $options);

我希望这个 bug 能尽快得到修复,直到那时任何试图让它工作的人都能找到这个线程...花了我大约 8 个小时的调试、阅读和尝试不同的方法。

关于windows - Windows 上的 symfony2 assetics yui 压缩器(路径语法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8195114/

相关文章:

Windows 批处理 : run a process in background and wait for it

php - 使用查询生成器比较日期

php - Symfony2 OAuth2 提供程序错误 UserRepository

grails - 使用 Grails 创建 WAR 存档时调用 JS 和 CSS mimifier

javascript - 递归地将javascript文件目录压缩为单个文件

c# - 在 "Code Blocks"IDE 中混合编程语言?

linux - 如何导出 LibGDX 游戏

c++ - 进程外使用MiniDumpWriteDump时如何获取异常信息?

php - 部署Laravel 5.2异常权限报错

javascript - 合并和缩小多个 CSS/JS 文件