Assetic SCSS 过滤器不转储 CSS 个文件

Assetic SCSS filter not dumping CSS files

我的 Symfony2 配置没有使用 asset management 和 Assetic

从 SCSS 中(重新)生成 CSS 文件

当我在 CLI 中使用 "php app/console assets:install" 转储我的资产时,所有文件都在那里,但在我的开发环境中没有任何反应,当我的浏览器试图找到 CSS 文件时出现 500 错误。怎么了?

当然一切都安装在我的流浪机器上(包括ruby和sassgem)

# Assetic Configuration
assetic:
    debug:          "%kernel.debug%"
    use_controller: false
    bundles:        
        - MyBundle
        - BraincraftedBootstrapBundle
    assets:
        my:
            inputs:
                - %kernel.root_dir%/../src/MyBundle/Resources/assets/scss/mytest.scss
            output: %kernel.root_dir%/../web/css/all.css
    #java: /usr/bin/java
    filters:
        #cssrewrite: ~
        scss:
            bin: /usr/local/rvm/gems/ruby-1.9.3-p551/bin/sass
            apply_to: "\.scss$"

编辑:它可能与 logs/dev.log

中的这个错误有关
[2015-03-02 14:22:22] request.CRITICAL: Uncaught PHP Exception Assetic\Exception\FilterException: 
Error Output: Errno::ETXTBSY: Text file busy

编辑2:可能与vagrant文​​件夹同步有关。我在使用 puphpet 配置排除的文件夹时遇到问题。

尽管根据您的日志文件,Assetic 可能存在一些配置问题(您可能需要弄清楚),但我认为转储 Assetic 资产的正确命令是 assetic:dump,不是 assets:install(它只是从包目录中复制/符号链接静态资产)。

我最终的解决方案是通过修改 app/AppKernel.php

将 vagrant 机器中的缓存目录移动到 /tmp 目录

只需添加这些代码行就足够了:

public function getCacheDir()
{
    return '/tmp/myapp/cache/' . $this->environment;
}

它只是将缓存目录移到同步的 vagrant 目录之外。