我正在 Symfony 2 中创建我的第一个项目,我对在每种情况下存储我的资产(CSS、JS、图像等)的位置有点困惑。
我开始了解模板系统是如何工作的,您应该在其中创建独立的捆绑包,然后使用应用程序/资源中的站点特定内容覆盖它们。
但是,当涉及到资产时,我是否在 app/Resources 中为站点特定内容创建了一个“公共”文件夹?
为什么捆绑包的一些资产保存在 web/bundles 中?
您必须将 css、图像、js 等放入它们应该属于的包内的文件夹中。该文件夹被调用public
并包含在Resources
文件夹中(显然,在其中,您可以为 css、js、...划分创建其他文件夹)。
完成此操作后,您可以使用(从命令行界面又名CLI )以下命令:
php app/console assets:install web
这样,您就告诉 symfony2(这是默认行为)将包含在文件夹中的所有文件夹复制到文件夹中。
Symfony 将创建(或扩展,如果存在)一个名为的文件夹,其中包含您应用程序的所有资产(包括来自供应商的一些资产)。public
Resources
web
bundles
如果您运行上述命令,则您正在制作资源的副本,因此每次更改它们时,您都必须再次启动命令本身。更好的方法是使用符号链接更改上述命令,如下所示
php app/console assets:install web --symlink
文件夹作为目标文件夹的原因web
是,您的 Web 服务器(apache 或其他相同)应该只访问其中包含的资源,并让 symfony2 重新获取所有资源的任务。
希望能帮助到你。