我在运行php app/console asset:install
命令时遇到问题。我的操作系统是Windows。
我的目的是使用该命令从app/Resources/public
复制css,js,images等文件。运行该命令后,将在/web
中创建一个bundle文件夹。但是在创建的bundle文件夹中没有来自app/Resources/public
的任何文件。只有两个文件夹:sensiodistribution和框架。
为什么我没有在/web/bundles
中获取包含复制资产的AppBundle文件夹?
您的资源>公共文件夹必须位于您的应用程序文件夹下的捆绑包或应用程序下,您可以将twig文件添加到app / resource文件夹以覆盖(默认)文件,就像我们这样做以覆盖错误页面,但不是资产,我试过它不起作用。
然后它会工作,你可以在这里检查 - link
如果你使用符号链接而不是复制文件夹/文件会更好
php app/console assets:install --symlink
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/
目录。
# 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