我不确定如何将Symfony的部分内容提供给Angular。
我在想我应该在Symfony中设置路由,然后让控制器输出文件?
我不确定如何简单地从控制器输出一个文件(即没有树枝的东西,没有真正渲染任何东西等等)并且这个方法会正确地缓存它吗?
例如,如果我想要角度下载partials / button.html,我应该设置一条路线,如:
partials:
pattern: /web/partials/{partial}
defaults: { _controller: AcmeWebBundle:Partials:show, _format: html }
然后,在我的控制器中,
...
public function showAction() {
return file_get_contents(' ... path to file ...');
}
....
这显然不起作用..我不知道如何在不经过树枝的情况下输出直接文件。或者也许我所有的部分应该只是twig文件(只是没有任何树枝的东西)?
答案 0 :(得分:8)
如果您想要返回类似的内容,则需要将文件内容添加到响应正文中。
use Symfony\Component\HttpFoundation\Response;
...
public function showAction() {
return new Response(file_get_contents(' ... path to file ...'),200);
}
...
但实际上你应该让你的网络服务器提供文件。我所做的是将我的部分放在网络目录下的子文件夹中:
web/
partials/
img/
js/
css/
然后只需要调用它们domain.com/parials/partialFileName.html
,因为文件存在,symfonys重写默认情况下应该忽略它,只是提供文件。
另一种方法(提到here)是将文件放在bundle的Resources / public文件夹中,然后运行
php app/console assets:install --symlink
(其中web是实际目录web /)
这将在指向公共目录的web目录中生成符号链接。所以,如果你有:
Acme/DemoBundle/Resources/public/partials/myPartial.html
它将在以下地址提供:
http://www.mydomain.com/bundles/acmedemo/partials/myPartial.html