Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
windows上的symfony2 ASETICS yui压缩程序(路径语法)_Windows_Symfony_Yui Compressor_Assetic - Fatal编程技术网

windows上的symfony2 ASETICS yui压缩程序(路径语法)

windows上的symfony2 ASETICS yui压缩程序(路径语法),windows,symfony,yui-compressor,assetic,Windows,Symfony,Yui Compressor,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_d

我正试图让资产运行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:
  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:dump会导致以下错误(由我翻译消息):

我发现有人告诉我指定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: %kernel.debug%
  use_controller: false
  filters:
    yui_js:
      jar: %kernel.root_dir%/Resources/java/yuicompressor-2.4.6.jar
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文件

现在它变得丑陋了,因为我们必须改变assetics核心才能让它工作。assetic的开发人员知道这个bug,我认为它在某些开发主干/分支中是固定的,但不是稳定的

必须在第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个小时的时间调试、阅读和尝试不同的方法。

11月19日22:53 Boo的回答确实对我有用,他在Assetic\Util\ProcessBuilder中提到的所有内容都做了更改(我忽略了第95行,因为它看起来与我的文件中的一样)

现在它可以在windows上工作。谢谢


我只是想确认一下。对于使用Windows server 2008 r2的其他用户,Im使用Symfony 2.0.7和yuicompressor-2.4.7

  • 对于IIS用户/或计算机的普通用户,您可能应该将C:\windows\Temp文件夹属性更改为777(读/写)

  • 请从rubynstaller.org解包ruby.7z,然后转到C:\\u ruby193\bin,在解包位置,您应该执行CMD提示符,键入:

    ruby -S gem install sass
    
    因此,您将在该位置获得
    sass.bat

  • 是时候使用Boo的最佳答案了,请注意,在
    symfony2 dev env
    中,可能没有必要将use\u控制器更改为false(在
    config.yml
    中),因为在
    config\u dev.yml
    中有另一个use\u控制器(设置为true),在
    routing\u dev.yml
    中还有一个
    \u assetic
    路由器,它们可能是相关联的


  • 您是否尝试过使用双引号、单引号,用
    \
    替换空格?对不起,不是指括号,而是指引号,所以是的,尝试了它们的组合。还尝试编写程序\文件\(x86)和其他一些东西。如果有人能告诉我在哪里可以找到将assetic集成到symfony2中的方法,我可能自己也能找到,但我根本找不到它(在命令定义的地方,在读取配置的地方等等)。如果Program\Files\输出的信息非常相同,请尝试Program\\Files\\Not change。唯一能稍微改变它的是使用C:\Progra~2\Java\jre6\bin\Java.exe,但我又收到了第一条消息。哇,我想我终于得到了一些东西:我找到了第95行,然后将其更改为
    if(defined('PHP\u WINDOWS\u VERSION\u MAJOR')){
    现在我在创建输出文件时出错。我将看看我能做多少。Symfony2的当前版本(版本2.0.5)有版本1.0.2的Assetic,该版本在Windows上被破坏。当前主版本修复了您提到的问题。请检查具有修复程序的版本的提交。另外请注意,如果您试图使其在Windows上运行,当前Assetic主版本中的
    compass
    现在被破坏。此和此讨论了
    compass
    的问题。此错误与assetic 1.0.2捆绑在一起的symfony 2.0.9中仍然存在此问题是否已修复?我有相同的问题,但仅与
    SASS