- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图让Assetic在Symfony 2.0.11中运行,以便将sass用于css文件。
我已经在这个问题上摆弄了好几个小时,从我收集到的信息来看,当前的 Assets 版本(1.0.2)搞砸了,无法在Windows中工作。
我尝试将github上的assetic和asseticBundle更新到最新的Master版本,但是这些要求Symfony 2.1带来了很多变化并且不向后兼容(更不用说它也没有正式发布),因此这不是一个选择。
这篇symfony2 assetics yui compressor on windows (path syntax)帖子对这个问题提供了一些很好的见解,但是不幸的是,它建议对 Assets 库进行的更改不足以使其在我的环境中正常工作。
我在https://github.com/kriswallsmith/assetic/commit/5621cd449b0d85316e5872d672e7e900edc2246c和https://github.com/kriswallsmith/assetic/issues/25中也发现了一些有趣的地方
最后,我所知道的是,我需要更改vendor/assetic/src/Assetic/Util/ProcessBuilder.php,也许要更改程序包中的其他文件,并且可能要在config.yml文件中添加一些信息(似乎添加了java或sass的路径可能会有帮助)。
我需要的是能够获得有效配置的人员,让我可以找到我所缺少的东西,或者理想情况下,使该死的东西起作用所需的步骤。
有人完成任务吗?
_____更新:
仍在挖掘中,现在只有3天了:/
新元素:
1/php5.3.8可能存在proc_open问题,并且按照https://bugs.php.net/bug.php?id=60120数据> 2048字节
从git存储库(https://github.com/symfony/symfony/issues/3216)获取symfony时,可能会产生此问题。
发出“git config --global core.autocrlf输入”并从git中重新获取所有内容,使我可以使用php5.3.10而不会崩溃。
2/https://github.com/kriswallsmith/assetic/commit/5621cd449b0d85316e5872d672e7e900edc2246c看起来不错。
我对Process.php(cf https://github.com/kriswallsmith/assetic/issues/92)中的路径做了一些小的修改,但我不确定这是否相关。
无论如何,这时我从Assetic获得的命令行在Shell中工作并输出预期的CSS。
3/sass.bat(位于Ruby193\bin中)需要具有指向ruby.exe的绝对路径,以便进行更进一步的操作(我了解到这很困难,如果您使用var_dump并在以下位置杀死脚本,则只会看到错误消息)正确的地方!)
现在,情况似乎有所改善,但仍然无法与sass配合使用(我认为与其他一些过滤器配合使用会很好)
我设法在“$ data = fread($ pipe,8192);”处的Process.php中(第172行附近)隔离了该问题。 :脚本第二次在此位置通过,$ pipe指向第二个资源,它永远不会返回...并且php被卡住,并且出现了非常困难的时间(我需要杀死/重新启动wamp至少两次,以能够进行其他测试)
我真的不熟悉proc_open和流,并且在理解代码要在其中执行的操作时遇到了困难。
我希望这可以帮助下一个尝试使事情正常进行的人,并最终也帮助我的案子。
仍在寻求有关此事的支持!
_____更新:
进一步的测试使我意识到,当sass文件足够小时,我可以进行“php app/console assetic:dump”工作。在我看来,对于PHP5.3.10,实际的CSS规则(不包括变量定义和Mixins)需要小于4096字节,对于PHP 5.3.8甚至更少。
这指向https://bugs.php.net/bug.php?id=60120和https://bugs.php.net/bug.php?id=51800中描述的proc_open错误
_____更新:
我试图安装php5.4来检查它是否解决了问题。
我花了一些时间才意识到此版本无法在我的计算机上运行的原因是因为还没有x64构建。
然后,我安装了32位版本的wamp,并轻松使用了php5.4。
最终结果:proc_open仍挂起:(
我在这里开始没有主意了...
演练:
因此,最终我使此功能生效,并认为我会尝试总结最重要的步骤,供以后的观众使用:
1.已安装Ruby 1.9.3和 compass 0.12
检查http://rubyinstaller.org/downloads/
使用将 compass 更新为0.12
"gem update --system"
"gem install compass"
self.from, self.to = File.expand_path(from), to
self.from, self.to = from.gsub('./', ''), to
[assetic]
git=http://github.com/kriswallsmith/assetic.git
;version=v1.0.2
version=ac71449e46bed22c276da26bf54ab2f733b3801d
[AsseticBundle]
git=http://github.com/symfony/AsseticBundle.git
target=/bundles/Symfony/Bundle/AsseticBundle
;version=v1.0.1
version=da4a46ce37557dcf3068b8493b12bdbbe47455e2
# Assetic Configuration
assetic:
debug: %kernel.debug%
use_controller: false
# java: /usr/bin/java
filters:
compass:
bin: e:\outils\Ruby193\bin\compass.bat
{% stylesheets filter='compass' output='css/*.css'
'@LndBimBundle/Resources/public/css/main.scss'
%}
<link href="{{ asset_url }}" type="text/css" rel="stylesheet" />
{% endstylesheets %}
php app/console assetic:dump --verbose --no-debug
@media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/Mattso\/AppData\/Local\/Temp\/ass9DBF\.tmp\.scss}line{font-family:\0000359}}
die($this->commandline);
vendor\assetic\src\Assetic\Util\Process.php
cmd /V:ON /E:ON /C ""e:\outils\Ruby193\bin\compass.bat" "compile" "C:\Users\Mattso\AppData\Local\Temp" "--config" "C:\Users\Mattso\AppData\Local\Temp\ass59BB.tmp" "--sass-dir" "" "--css-dir" "" "C:\Users\Mattso\AppData\Local\Temp\ass59BC.tmp.scss""
最佳答案
请查看我对以下问题的回答:Windows下如何在Symfony2中使用SCSS过滤器?:https://stackoverflow.com/a/9658410/3765
这是对我尝试使Assetic在Windows上花费的时间的全面介绍。
基于your example-您不需要添加cssrewrite
过滤器。这是我使用Twig的 compass 的方法:
{% stylesheets filter='compass' output='css/compiled/*.css' 'css/example.scss' %}
<link rel="stylesheet" href="{{ asset_url }}">
{% endstylesheets %}
关于windows - 如何在Windows中将Assetic + sass与Symfony2配合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9626777/
我是一名优秀的程序员,十分优秀!