SASS 没有在 symfony 中编译
Posted
技术标签:
【中文标题】SASS 没有在 symfony 中编译【英文标题】:SASS not compiling in 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:
cs-s-rewrite: ~
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 文件。我不太确定错误告诉我什么。
谢谢:)
【问题讨论】:
【参考方案1】:我认为您需要找到ruby
的正确路径(该错误意味着/usr/local/lib/ruby
不是您的ruby 解释器,而只是一个文件夹)和sass
。
-
执行
which ruby
。它将打印到 ruby 的路径。对我来说是/usr/bin/ruby
。
在您的配置中设置正确的路径:
如果还是不行,可能你还需要找到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:
cs-s-rewrite: ~
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
选项放入命令以上是关于SASS 没有在 symfony 中编译的主要内容,如果未能解决你的问题,请参考以下文章
如何在 LoginListener 中的 onSecurityInteractiveLogin 方法中重定向 - Symfony2