Вадим Бондаренко Asked:2020-04-18 20:25:30 +0800 CST2020-04-18 20:25:30 +0800 CST 2020-04-18 20:25:30 +0800 CST symfony 处理文件 772 文件处理是如何在 siphon 中实现的?例如,我有一个静态文件,我想让它可供下载。我需要如何在 Twig 模板引擎中为其生成路径。我知道有一个资产,但据我了解,它定位于 CSS、JS 和图像文件。 symfony2 1 个回答 Voted Best Answer Michael Sivolobov 2020-05-02T13:55:13+08:002020-05-02T13:55:13+08:00 有几种解决问题的方法。 如果您希望能够以某种方式处理文件的下载(例如,计算下载次数并将它们写入数据库,或者只授予某些用户访问权限),那么您可以为this matter and issue the contents of the file as a response(这里也有几个选项,但最好把它们画在单独的问题中)。 如果您想卸载服务器并静态提供文件(例如,通过配置为代理的 nginx),您可以使用同一个{{ asset() }}生成文件链接。假设我们需要的文件在web/files/example.pdf. 这里再次有几种方法: 您可以在每次调用中asset指定文件相对于目录的完整路径web/ 在模板中: <a href="{{ asset('/files/example.pdf') }}">Link</a> 您可以为某些文件编写特定前缀作为“包”并将其asset与该包一起使用。在这种情况下,您将获得一个易于更改的文件夹路径:突然间,您决定修改目录结构。例子: 在配置中: framework: templating: packages: files: base_urls: /files 在模板中: <a href="{{ asset('/example.pdf', 'files') }}">Link</a>
有几种解决问题的方法。
如果您希望能够以某种方式处理文件的下载(例如,计算下载次数并将它们写入数据库,或者只授予某些用户访问权限),那么您可以为this matter and issue the contents of the file as a response(这里也有几个选项,但最好把它们画在单独的问题中)。
如果您想卸载服务器并静态提供文件(例如,通过配置为代理的 nginx),您可以使用同一个
{{ asset() }}
生成文件链接。假设我们需要的文件在web/files/example.pdf
. 这里再次有几种方法:您可以在每次调用中
asset
指定文件相对于目录的完整路径web/
在模板中:
您可以为某些文件编写特定前缀作为“包”并将其
asset
与该包一起使用。在这种情况下,您将获得一个易于更改的文件夹路径:突然间,您决定修改目录结构。例子:在配置中:
在模板中: