资产未安装在 symfony 4 中

Assets not install in symfony 4

我阅读了 Web Assets 的 symfony 文档,并在我项目的 root 中创建了 /assets 目录,然后 运行 命令 php bin/console assets:install但得到:

[OK] No assets were provided by any bundle.

我在 assets 目录 中存储了一个 CSS 文件,但没有安装在 /public

我该怎么办?

Symfony 4 的 Web 资产文档推荐使用 Webpack Encore。 此配置中未使用 assets:install 命令。

这是你必须做的 according to the documentation :

  • 在您的计算机上安装 Node.js and Yarn
  • 将 Encore 安装到您的项目中:yarn add @symfony/webpack-encore --dev
  • 通过编辑(或创建)webpack.config.js 文件 as described here.
  • 配置 webpack/Encore
  • 通过 运行 编译您的资产:yarn run encore dev

在我们等待进一步的 webpack-encore 开发时,有一种解决方法可以(或多或少)清楚地做到这一点。可以通过 Makefile 或类似的方式完成,但这里是更原生的解决方案。

创建空白包:

// src/BlankBundle/BlankBundle.php
namespace App\BlankBundle;

use Symfony\Component\HttpKernel\Bundle\Bundle;

class BlankBundle extends Bundle
{
}

然后将您的资产放入 src/BlankBundle/Resources/public 目录并启用捆绑包:

// add it to config/bundles.php
App\BlankBundle\BlankBundle::class => ['all' => true],

执行 php bin/console assets:install 命令后,您的资源将位于 public/bundles/blank 目录。