在 Symfony2 中使用 Compass 和 Assetic 的 Foundation5
Posted
技术标签:
【中文标题】在 Symfony2 中使用 Compass 和 Assetic 的 Foundation5【英文标题】:Foundation5 with Compass and Assetic in Symfony2 【发布时间】:2014-07-27 08:51:50 【问题描述】:我想在 Symfony2 中使用 Compass 和 Assetic 配置 Foundation5,正如他们在 http://foundation.zurb.com/docs/sass.html 所说的那样,我已经安装了 Foundation:
npm install -g bower grunt-cli
gem install foundation
在config.yml
已经这样配置了:
# Assetic Configuration
assetic:
debug: %kernel.debug%
use_controller: false
filters:
compass:
require: ['zurb-foundation']
apply_to: ".(scss|sass)$"
然后我在基本 SCSS 文件 @import "foundation";
中导入,但是当我运行时:php app/console assetic:dump
我有以下错误:
[Assetic\Exception\FilterException]
An error occurred while running:
'/usr/bin/ruby' '/usr/bin/compass' 'compile' '/tmp' '--images-dir' '/srv/www/vhosts/proj/app/../src/pro/MainB
undle/Resources/public/images' '--config' '/tmp/assetic_compass0NW1Qc' '--sass-dir' '' '--css-dir' '' '/tmp/assetic_compassT
0AFvM.scss'
Error Output:
Output:
create web/sprites/flags-s566f9ef717.png
create web/sprites/flags-s566f9ef717.png
error assetic_compassT0AFvM.scss (Line 7: File to import not found or unreadable: foundation.
Load paths:
/tmp
/usr/share/compass/frameworks/blueprint/stylesheets
/usr/share/compass/frameworks/compass/stylesheets
/srv/www/vhosts/proj/src/pro/MainBundle/Resources/public/css
/srv/www/vhosts/proj/src/pro/CompanyBundle/Resources/public/css
/srv/www/vhosts/proj/web/bundles/pro/css
Compass::SpriteImporter)
create assetic_compassT0AFvM.css
Input:
@import "base";
@import "header";
@import "global";
@import "foundation";
我还看到了升级页面http://foundation.zurb.com/docs/upgrading.html,他们说要更改:
require "zurb-foundation"
到:
add_import_path "bower_components/foundation/scss"
但是无法正常工作,您对如何配置它以使其正常工作有什么建议吗?
配置更改
如果我更改 config.yml
而不是 require 我使用 plugins :
# Assetic Configuration
assetic:
debug: %kernel.debug%
use_controller: false
filters:
compass:
plugins: ['zurb-foundation']
apply_to: ".(scss|sass)$"
我收到此错误:
[Assetic\Exception\FilterException]
An error occurred while running:
'/usr/bin/ruby' '/usr/bin/compass' 'compile' '/tmp' '--images-dir' '/srv/www/vhosts/proj/app/../src/pro/MainB
undle/Resources/public/images' '--config' '/tmp/assetic_compass0qewOn' '--sass-dir' '' '--css-dir' '' '/tmp/assetic_compassQ
uKtrw.scss'
Error Output:
LoadError on line ["36"] of /usr/lib/ruby/1.9.1/rubygems/custom_require.rb: cannot load such file -- zurb-foundation
Run with --trace to see the full backtrace
Input:
@import "base";
@import "header";
@import "global";
@import "foundation";
【问题讨论】:
您确实意识到您正在阅读用于升级 Ruby on Rails 基础的文档,而不是 Symfony? 在foundation.zurb.com/docs/upgrading.html 中,有一段Upgrade manually with Compass
并且在第3 步他们说:TELL COMPASS WHERE FOUNDATION RESIDES
我认为应该有一个连接,因为Symfony2 使用Compass,这就是我想要配置的。
你正在阅读的部分提到config.rb
文件(这是Ruby文件扩展名)和require "zurb-foundation"
和add_import_path "..."
是绝对有效的ruby语法。
指南针需要config.rb
文件才能配置!现在我知道 Compass 的配置是由 Symfony2 中的 Assetic 管理的。所以我只是徘徊在config.yml
中放置什么配置,以便与Foundation5 正常工作。
我找到了这个答案***.com/a/20619652,但按照建议做我有同样的错误:File to import not found or unreadable: foundation.
【参考方案1】:
我终于在config.yml
中找到了正确的配置:
# Assetic Configuration assetic:
debug: %kernel.debug%
use_controller: false
filters:
compass:
load_paths:
- '%kernel.root_dir%/../app/Resources/public/vendor/bower_components/foundation/scss'
apply_to: ".(scss|sass)$"
【讨论】:
以上是关于在 Symfony2 中使用 Compass 和 Assetic 的 Foundation5的主要内容,如果未能解决你的问题,请参考以下文章
在 Compass 中使用数据 URI 的新 Bulletproof @font-face 语法
在 Rails 3.1 应用程序中使用 Sass + Compass + Blueprint