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