2

我在 Symfony 2.1 中作为供应商安装了 Twitter Bootstrap 框架,使用 composer 包管理器作为来自 github repo 的包。我的意图是直接在::base.html.twig布局中“包含”该供应商的一些文件,而不必创建一个 Bundle 来处理这个问题。

如何从视图中访问供应商的文件,例如“vendor/twitter/bootstrap” ?

4

2 回答 2

3

哦,对不起,我在谷歌上搜索时发现了自己的问题。我在提交 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

并再次编译。

于 2012-07-20T17:35:17.347 回答
1

您可以使用assetics css rewrite 来完成您的要求:

{% stylesheets filter='cssrewrite' output='css/frontend.css'
   '%kernel.root_dir%/../vendor/path/to/stylesheet.css'
%}

[编辑:请参阅此处了解最近关于该主题的 googlegroups 讨论]

于 2012-07-16T12:46:22.820 回答