在Symfony2中放置核心资源的位置



我开始用Symfony2建立一个网站,我对资源有一点困惑。

Symfony2 Book说每个资源文件都必须在一个Bundle中,但是我在base.html.twig文件中使用的最重要的图像,.js和.css文件呢?

我应该做一个CoreBundle或类似的东西,只是为了这些文件,或者我应该把这些在应用程序资源文件夹(或直接在web文件夹,也许)?如果我可以使用这些app资源文件夹,我如何从模板引用这些文件?

为此制作一个Bundle似乎有点不必要,而且这些文件的资源url也很难看(例如:'/bundles/projectcore/images/logo.jpg')

这里的最佳实践是什么?

我曾经有过这样的情况:我把所有文件保存在/web(即/web/js)中,而其他地方我把它们保存在一个'Assets' bundle中。

如果您正在开发一个将在许多项目中重用的包,那么将资产存储在该包中是有意义的。我想你会发布/安装这些资产到web文件夹使用命令行。例如,假设你有一个需要特定css的BlogBundle。你可以将css存储在这个bundle中,这样下次你在一个项目中使用BlogBundle时,你就可以很容易地重用css。

与Symfony2中的许多其他东西一样,您的个人偏好在这些决定中起着很大的作用。我建议在存储资产的位置上保持一致。必须管理分散在三个不同位置(web、AssetsBundle和其他bundle)的资产,这可能会让人非常头疼。因此,选择一个位置,并尽量保持一致。

至于从app/Resources中访问资源…你也许可以使用阿塞蒂克。我不是很熟悉它,但我相信你可以从项目中的任何地方加载资产。我实际上建议你看看核心的Assetic代码(参见vendorAssetic),而不是Symfony2的Assetic助手,因为你会更好地了解什么是可能的。

我们在Linux中使用了符号链接,这样/web/bundles/projectcore/images就指向src/Bundle/Resources/public/images

对于Netbeans中的Subversion,它确实有效。好的是,所有的应用程序都保留在/src/Bundle文件夹

中。

最新更新