我正在Symfony 2中创建我的第一个项目,我对在每种情况下存储我的资产(CSS,JS,图像等)的位置感到困惑。
我开始了解模板系统如何工作,您应该将Bundles创建为独立的,然后在app / Resources中使用特定于站点的内容覆盖它们。
但是当谈到资产时,我是否会在app / Resources中为网站特定内容创建一个“公共”文件夹?
为什么捆绑包的某些资产会保留在网络/捆绑包中?
答案 0 :(得分:1)
你必须将css,images,js等放入它们应该属于的包内的文件夹中。
此文件夹名为public
,并包含在Resources
文件夹中(显然,在其中,您可以为css,js,...分区创建其他文件夹)。
一旦你完成了,你可以使用(来自 C ommand L ine 我 nterface又名 CLI )以下命令:
php app/console assets:install web
通过这种方式,您告诉symfony2(这是一种默认行为),将{strong>复制包含在public
文件夹中的所有名为Resources
的文件夹,转换为{ {1}}文件夹
Symfony将创建(或扩展,如果存在)名为web
的文件夹,其中包含应用程序的所有资产(包括来自供应商的一些资产)。
如果您运行上述命令,那么您正在复制资源,因此每次更改资源时,都必须再次启动命令。更好的方法是使用符号链接更改上面的命令,如下所示
bundles
php app/console assets:install web --symlink
文件夹作为目标文件夹的原因是,您的Web服务器(apache或其他文件是相同的)应该只访问其中包含的资源,并使symfony2成为恢复所有资源的任务。
希望它有所帮助。
答案 1 :(得分:0)