为什么资产:安装不复制/资源/公共到/ web文件夹?

问题描述 投票:2回答:3

我在运行php app/console asset:install命令时遇到问题。我的操作系统是Windows。

我的目的是使用该命令从app/Resources/public复制css,js,images等文件。运行该命令后,将在/web中创建一个bundle文件夹。但是在创建的bundle文件夹中没有来自app/Resources/public的任何文件。只有两个文件夹:sensiodistribution和框架。

为什么我没有在/web/bundles中获取包含复制资产的AppBundle文件夹?

php symfony assets
3个回答
5
投票

您的资源>公共文件夹必须位于您的应用程序文件夹下的捆绑包或应用程序下,您可以将twig文件添加到app / resource文件夹以覆盖(默认)文件,就像我们这样做以覆盖错误页面,但不是资产,我试过它不起作用。

like this

然后它会工作,你可以在这里检查 - link

如果你使用符号链接而不是复制文件夹/文件会更好

php app/console assets:install --symlink

4
投票

app/console assets:install只安装捆绑包中的资产。 app/Resources不被视为捆绑,因此这些资产未被安装。

官方Symfony最佳实践实际上推荐给store public assets (such as CSS stylesheets, JavaScript files, images, etc.) directly in the web/ directory。正如您在该页面上看到的那样,这也使您可以更轻松地使用模板中的资源。

app/console assets:install命令的目的是将作为第三方软件包的一部分下载到vendor/目录的资产复制或符号链接到公共web/目录。一个很好的例子是调试工具栏。

但是,您自己的资产已经是项目的一部分,因此您可以轻松地将它们直接存储在web/目录中。将它们存储在app/Resources目录中以便在单独的步骤中将它们复制到web/没有任何好处。

当然,如果您有源文件(例如SCSS文件或未缩小的CSS / JS文件),您可能不希望将它们存储在公共目录中。在这种情况下,使用app/Resources存储源文件并使用诸如Assetic之类的构建工具将缩小/处理的资产复制到web/目录。


-1
投票
# Assetic Configuration
assetic:
    debug:          "%kernel.debug%"
        use_controller: false
        bundles:        [ AppBundle ]

php app/console cache:clear

php app/console assets:install web

php app/console assetic:dump --force
© www.soinside.com 2019 - 2024. All rights reserved.