我在 Symfony 2.1 中作为供应商安装了 Twitter Bootstrap 框架,使用 composer 包管理器作为来自 github repo 的包。我的意图是直接在::base.html.twig布局中“包含”该供应商的一些文件,而不必创建一个 Bundle 来处理这个问题。
如何从视图中访问供应商的文件,例如“vendor/twitter/bootstrap” ?
我在 Symfony 2.1 中作为供应商安装了 Twitter Bootstrap 框架,使用 composer 包管理器作为来自 github repo 的包。我的意图是直接在::base.html.twig布局中“包含”该供应商的一些文件,而不必创建一个 Bundle 来处理这个问题。
如何从视图中访问供应商的文件,例如“vendor/twitter/bootstrap” ?
哦,对不起,我在谷歌上搜索时发现了自己的问题。我在提交 xD 时尝试发布此问题的那天丢失了表单的内容,并认为它没有发布,今天,让 LOL 感到惊讶。
Ty 对于所有答案,幸运的是我自己找到了解决方案。如果我的经验可以帮助任何人...因为 2.1 版本可以从 github 获取 twitter 引导程序包并使用 composer.phar 作为供应商安装它
在项目根目录的 composer.json 文件中,将其添加到 "require": {} 部分:
"twitter/bootstrap": "dev-master",
然后在“存储库”:{} 部分添加:
{
"type": "package",
"package": {
"version": "master",
"name": "twitter/bootstrap",
"source": {
"url": "https://github.com/twitter/bootstrap.git",
"type": "git",
"reference": "master"
},
"dist": {
"url": "https://github.com/twitter/bootstrap/zipball/master",
"type": "zip"
}
}
},
然后使用 node.js for windows 安装你可以执行:
npm install -g less jshint recess uglify-js
和
make
要再次编译包含已编译库的 docs 子文件夹或...
make bootstrap
这也在引导子文件夹中编译 css、js、缩小版本
然后,可以通过这种方式调用和使用引导程序:
{% stylesheets '../vendor/twitter/bootstrap/bootstrap/css/bootstrap.min.css' %}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
{% javascripts '../vendor/twitter/bootstrap/bootstrap/js/bootstrap.min.js' %}
<script src="{{ asset_url }}" type="text/javascript"></script>
{% endjavascripts %}
这种方法的优点是可以通过简单地使用来更新供应商的版本:
cd /path/to/symfony/root/dir
php composer.phar update Twitter/Bootstrap
并再次编译。
您可以使用assetics css rewrite 来完成您的要求:
{% stylesheets filter='cssrewrite' output='css/frontend.css'
'%kernel.root_dir%/../vendor/path/to/stylesheet.css'
%}
[编辑:请参阅此处了解最近关于该主题的 googlegroups 讨论]