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

时间:2015-10-12 13:06:48

标签: php symfony assets

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

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

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

3 个答案:

答案 0 :(得分:5)

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

like this

然后它会起作用,你可以在这里查看 - link

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

会更好
php app/console assets:install --symlink

答案 1 :(得分:4)

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

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

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

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

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

答案 2 :(得分:-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