【问题标题】:SASS not compiling in symfonySASS 没有在 symfony 中编译
【发布时间】:2017-11-10 20:37:25
【问题描述】:

我正在尝试将 SASS 与带有 symfony 的 Assetic 捆绑包一起使用。我遵循了主要教程here。但是,它不会生成任何 css 文件。我尝试过使用不同的输出,检查文件权限并弄乱过滤器,但我不太确定从这里去哪里。

相关的config.yml代码:

# Assetic Configuration    
assetic:
    debug:          '%kernel.debug%'
    use_controller: '%kernel.debug%'
    filters:
        cssrewrite: ~
        scssphp: 
          bin: /usr/local/lib/ruby/gems/2.3.0/gems/sass-3.4.24
          apply_to: .scss$

这是我的 stylesheet.html.twig,包含在我的 base.html.twig 中

{% stylesheets 
    'sass/style.scss' 
    filter = "scssphp" output='css/sass.css' %}
    <link rel="stylesheet" href="{{ asset_url }}"/>
{% endstylesheets %}

我尝试使用以下命令行:

php bin/console assetic:dump --env=prod --no-debug

并得到以下错误:

[Assetic\Exception\FilterException]                                          
  An error occurred while running:                                             
  '/usr/local/lib/ruby' '/usr/local/lib/ruby/gems/2.3.0/gems/sass-3.4.24' '--  
  load-path' '/Applications/XAMPP/xamppfiles/htdocs/my_website/app/../web/sas  
  s' '--scss' '--load-path' '/Applications/XAMPP/xamppfiles/htdocs/my_website  
  /app/../web' '--cache-location' '/Applications/XAMPP/xamppfiles/htdocs/my_w  
  ebsite/var/cache/prod' '/private/var/folders/_2/xkw80vl13zj0xw0nm7j8c4bc000  
  0gn/T/assetic_sassqn8iBF'                                                    
  Error Output:                                                                
  sh: /usr/local/lib/ruby: is a directory                                      
  sh: line 0: exec: /usr/local/lib/ruby: cannot execute: Undefined error: 0    
  Input:
  [...]

错误的其余部分只是我的 scss 文件。我不太确定错误告诉我什么。

谢谢:)

【问题讨论】:

    标签: css symfony sass assetic


    【解决方案1】:

    我认为您需要找到ruby 的正确路径(该错误意味着/usr/local/lib/ruby 不是您的ruby 解释器,而只是一个文件夹)和sass

    1. 执行which ruby。它将打印到 ruby​​ 的路径。对我来说是/usr/bin/ruby
    2. 在您的配置中设置正确的路径:
    资产: 调试:'%kernel.debug%' use_controller: '%kernel.debug%' 红宝石:/usr/bin/ruby 过滤器: css重写:~ scssphp: 垃圾箱:/usr/local/lib/ruby/gems/2.3.0/gems/sass-3.4.24 适用于:.scss$
    1. 如果还是不行,可能你还需要找到sass的正确路径。我正在这个文件夹中寻找它:

      找到 /usr/local/bin/ | grep 萨斯 查找 /usr/bin/ | grep 萨斯 查找 /usr/lib/ | grep 萨斯

    第一个命令给了我这个输出:

    /usr/local/bin/sass-convert
    /usr/local/bin/node-sass
    /usr/local/bin/sass
    

    最后一行显示路径。尝试在您的配置中更改它,如下所示:

    assetic:
        debug:          '%kernel.debug%'
        use_controller: '%kernel.debug%'
        ruby: /usr/bin/ruby
        filters:
            cssrewrite: ~
            scssphp: 
              bin: /usr/local/bin/sass
              apply_to: .scss$
    

    让我知道它是否有效。

    【讨论】:

    • 感谢您的回复!使用“which ruby​​”,它仍然将我链接到同一个库( /usr/local/lib/ruby )。但是,我使用了您的路径 /usr/bin/ruby,因为那是我找到可执行文件的地方。我寻找 sass 并在与您相同的路径上找到它。尽管如此,我仍然得到同样的错误?它仍然说“ sh: /usr/local/lib/ruby: is a directory ”,即使我没有在配置文件中的任何地方使用该路径。是否涉及缓存?
    • 也许,尝试清除缓存并将--env dev 选项放入命令
    猜你喜欢
    • 1970-01-01
    • 2017-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-08
    • 1970-01-01
    • 2018-08-22
    • 2018-09-30
    相关资源
    最近更新 更多