可以在Symfony> = 2.0的视图中访问供应商文件?

时间:2012-07-14 10:50:52

标签: symfony-2.1

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

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

2 个答案:

答案 0 :(得分:3)

哦对不起,我在google上搜索时发现了自己的问题。我在提交xD的同时试图发布这个问题的那天丢失了表单的内容。并且认为它没有发布,今天让LOL大吃一惊。

Ty为所有答案,幸运的是我自己找到了解决方案。如果我的经验可以帮助任何人...从2.1版本可以从github获取twitter bootstrap包并使用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"
             }
        }
    },

然后安装了用于windows的node.js,你可以执行:

npm install -g less jshint recess uglify-js

make

再次编译包含已编译库的文档子文件夹或...

make bootstrap

在bootstrap子文件夹中编译css,js,minified版本

然后,可以通过这种方式调用和使用bootstrap:

{% 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

再次编译。

答案 1 :(得分:1)

您可以使用资产css重写来执行您的要求:

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

[编辑:请参阅此处了解the topic上最近的Google小组讨论情况