将引导程序添加到symfony应用程序的正确方法是什么?

Wic*_*nga 11 symfony twig twitter-bootstrap composer-php

我正在使用symfony框架3来开发Web应用程序.我需要在我的应用程序中添加boostrap的功能.我使用下面的命令安装了bootstrap.(我正在使用作曲家.)

composer require twbs/bootstrap
Run Code Online (Sandbox Code Playgroud)

它将bootstrap安装到应用程序的vendor文件夹中.更具体地说vendor\twbs\bootstrap.

我需要在应用程序的twig模板(位于)中附加bootstrap cssjs文件app\Resources\views作为资产.

例如:

<link href="{{ asset('css/bootstrap.css') }}" rel="stylesheet" />
Run Code Online (Sandbox Code Playgroud)

但资产仅适用于位于web(web\bundles\framework)文件夹中的文件.我可以手动将这些.css.js文件从供应商文件夹复制到web文件夹以使其工作,但应该有一个正确的方法(即:添加资产).例如:一个命令bin/console

任何帮助表示赞赏.

Two*_*oez 8

看起来这在Symfony3中不再有效.

在Symfony3中,以下内容应该有效:

twig:
    form_themes: ['bootstrap_3_layout.html.twig']
Run Code Online (Sandbox Code Playgroud)

  • 这可以确保使用引导类和其他属性创建表单,但我们必须自己附加引导程序文件. (2认同)

小智 6

Symfony Best Practies为这个问题提供了答案:http://symfony.com/doc/current/best_practices/web-assets.html

如果您正在开发这样的应用程序,则应使用该技术推荐的工具,例如Bower和GruntJS.您应该从Symfony后端单独开发前端应用程序(如果需要,甚至可以分离存储库).

在我们的项目中,我们使用grunt构建并将这些文件连接到web文件夹中.


Sia*_*vas 5

自 Symfony 版本 4 以来,建议的方法发生了变化:Webpack Encore 与 npm / yarn 一起用于捆绑 CSS 和 JavaScript 资源,其中可以包含 Bootstrap 框架。

首先安装 Encore,然后遵循Bootstrap 特定的文档。总之,必须执行以下命令:

composer require symfony/webpack-encore-bundle
yarn install
yarn add bootstrap --dev

# after making the required changes to webpack.config.js, app.js, run Encore
yarn encore dev --watch
Run Code Online (Sandbox Code Playgroud)