php - Symfony2 的核心资源放在哪里?

标签 php symfony

我开始用 Symfony2 建立一个网站,我对资源有点不知所措。

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

我应该只为这些文件制作一个 CoreBundle 或类似的东西,还是应该将它们放在 app\Resources 文件夹中(或者直接放在 web 文件夹中,也许)? 如果我可以为这些文件使用 app\Resources 文件夹,我如何从模板中引用这些文件?

为此制作一个 Bundle 似乎有点不必要,而且在我看来,这些文件的 Assets URL 也很丑陋(例如 '/bundles/projectcore/images/logo.jpg')。

此处的最佳做法是什么?

最佳答案

我曾遇到过将所有文件保存在/web(即/web/js)中的情况,而在其他情况下我将它们保存在“ Assets ”包中。

如果您正在开发一个将在多个项目中重复使用的包,那么将 Assets 存储在该包中是有意义的。我认为您随后会使用命令行将这些 Assets 发布/安装到 Web 文件夹。例如,假设您有一个需要特定 CSS 的 BlogBu​​ndle。您会将 css 存储在该包中,因此下次您将 BlogBu​​ndle 用于项目时,您可以轻松地重用 css。

与 Symfony2 的许多其他事情一样,您的个人偏好在这些决定中起着重要作用。我建议与您存储 Assets 的位置保持一致。必须管理拆分在三个不同位置(Web、AssetsBundle、其他包)的 Assets 可能会让人头疼。所以选择一个位置,并尽量保持一致。

至于从 app/Resources 访问 Assets ...您可以为此使用 Assetic。我对它不是很熟悉,但我相信您可以从项目中的任何地方加载 Assets 。实际上,我建议您查看核心 Assetic 代码(查看 vendor\Assetic)而不是 Symfony2 Assetic 帮助器,因为您会更好地了解可能的情况。

关于php - Symfony2 的核心资源放在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7590280/

相关文章:

javascript - 如何通过javascript在dropzone上传帖子中发送csrf token ?

PHP DOMDocument - 为什么破折号 "–"转换为 –

Symfony2 拒绝我的模型类中的自定义 findBy 函数

symfony - FOSUserBundle并记住我

symfony - 如果不存在则添加或检索另一个实体中的实体

symfony - FOS bundle - 如何选择具有特定角色的用户?

php - Ruby Time.now.to_i PHP 等效项

php - 在不替换 PHP 中的 html 实体的情况下获取 xml 子项

php - MYSQL实时显示

php - 使用 assetic 和 angular 在 symfony 中断开链接