Symfony2(版本2.8.13):我不知道在哪里放置和访问我的CSS、JS和图像文件

Symfony2(版本2.8.13):我不知道在哪里放置和访问我的CSS、JS和图像文件,symfony,Symfony,我对Symfony2非常陌生,正在努力将现有CodeIgniter站点中当前运行的所有内容重写为Symfony2,以获得新的Symfony2版本 在远程服务器上安装Symfony2 2.8.13版(标准版)后,我已经能够在我的计算机的Chrome浏览器中成功运行app.php和app_dev.php页面。我使用“创建您的第一页”说明开始学习Symfony2,现在正逐步应用这些知识,开始重写旧的CodeIgniter index.php页面,以便在新的Symfony站点中运行 因为旧的CodeIg

我对Symfony2非常陌生,正在努力将现有CodeIgniter站点中当前运行的所有内容重写为Symfony2,以获得新的Symfony2版本

在远程服务器上安装Symfony2 2.8.13版(标准版)后,我已经能够在我的计算机的Chrome浏览器中成功运行app.php和app_dev.php页面。我使用“创建您的第一页”说明开始学习Symfony2,现在正逐步应用这些知识,开始重写旧的CodeIgniter index.php页面,以便在新的Symfony站点中运行

因为旧的CodeIgniter站点主要使用php、css、javascript、jquery、一些插件和一些CodeIgniter函数连接到支持的数据库并呈现输出页面,所以我决定不重写twig中的视图

相反,我只是使用Symfony控制器来存放CodeIgniter控制器的“逻辑”并查看文件。稍后,我将把controller/view文件分解为多个不同类型的文件,以创建最初在CodeIgniter站点中使用的可重用组件文件,但将其重写为使用Symfony2框架

话虽如此,以下是我的问题:

1) 我如何“告诉”呈现的网页在哪里可以找到javascript(js)、图像、css和我放在供应商目录下的其他文件的第三方插件文件?我并没有使用composer来做这件事,因为大多数文件都是我刚从CodeIgniter站点复制过来的

2) 我如何“告诉”呈现的网页在哪里找到我放在src/project目录下的非第三方main.css文件

3) 我如何“告诉”呈现的网页在哪里找到我也放在src/project目录下的非第三方图像文件

我知道与供应商产品没有紧密联系的javascript、图像和css文件可以放在几个不同的位置,其中一个是app/Resources目录,但为了清晰起见,特别是在我仍在转换CodeIgniter站点页面时,我宁愿将它们放在src/下特定于页面的目录中,至少对我来说,这比将它们全部转储到Resources目录中更清晰、更直接。我知道有一种自动化管理此类文件的工具Assetic,但它不再自动安装在Symfony2 2.8.x版中,我也不相信这会使我的非供应商文件与其相关捆绑包保持紧密联系

另一个解决方案谈到在Resources目录和bundle之间创建一个符号链接,但我不确定该链接应该指向哪个方向,以及它是在哪个目录级别创建的

有人能帮我理解在不使用额外工具和不必要的抽象级别的情况下管理这些资源需要做什么吗

最后,由于我来自CodeIgniter,是否有一份关于如何在CodeIgniter中完成各种事情以及如何在Symfony2中完成与CodeIgniter函数调用相同或类似的事情的备忘单

多谢各位

=======================================================

跟进托马斯的回应。
谢谢你,托马斯

我还没有完全了解Symfony的条款。 当你说MyBundle时,我在哪里找到那个目录

/var/www/vhosts/symfony2/src/AppBundle/Controller或 /var/www/vhosts/symfony2/app

只有app目录有一个Resources子目录,或者我应该把它放在第一个路径的Controller目录下吗

在我使用app/console命令之前,我想弄清楚这一点

另外,由于我没有使用twig,我是否仍然可以使用{%%}符号来指定html链接和img标记从哪里获取文件?正如我最初所说,我现在不想将html语句转换成twig,html已经完成,生成的页面正是我想要的

再次感谢

另外,我试图在评论中做出回应,但效果不太好,因为它占用了所有的换行符和额外的空格。A我知道一定有一种方法可以在不编辑原始问题的情况下添加到这个帖子中,但是除了回答我自己的问题之外,我看不到任何东西,这是我绝对做不到的。那么,有人会这么好心,请告诉我如何将我自己的回复添加到此线程中吗?

一个好方法是使用

首先,您不应该将文件直接放入供应商目录,因为如果您进行composer安装/更新,它可能会被删除,这根本不是一个好的做法

使用这些资源在捆绑包的Resources文件夹或app文件夹的Resources文件夹中创建公用文件夹

MyBundle/Resources/public
然后将您的资源放在这个文件夹中,例如我放置的
js/jquery.min.js

然后运行cmd并使用以下命令行

app/console assets:install
带有选项--symlink

这将把您的所有资产安装到web文件夹中

要访问您的资产,请使用
{{asset('myfolder/js/jquery.min.js'}}
例如,在细枝视图中。 希望这有帮助

您还可以查看有关使用Assetic管理资产的官方文档


编辑:

我还没有完全了解Symfony的条款,当你说 MyBundle,我在哪里找到那个目录

当我提到MyBundle文件夹时,我假设您已经在应用程序中创建了一个bundle,您可能应该看看这个页面(),它解释了symfony应用程序的基本架构。要生成具有其基本结构的新bundle,您可以按照这个页面()进行操作

只有app目录有一个Resources子目录,或者我应该把它放在 在第一个路径的控制器目录下

当您使用我给您的链接中描述的步骤为应用程序创建一个新包时,您将