与服务器端包括合作

编辑该页面

警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 5.1,不再维护。

这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。

与服务器端包括合作

以类似的方式应急服务国际公司(边缘方面包括)、SSI可以用来控制HTTP缓存响应的碎片。最重要的差别是SSI直接被大多数web服务器Apache,Nginx等。

SSI指令通过HTML注释:

1 2 3 4 5 6 7 8 9 10 11
< ! DOCTYPEhtml><html><身体>< !——……一些内容- - >< !——嵌入另一个页面的内容- - >< !——# include虚拟= " http://..。”-->< /span>< !——……更多内容- - >< /身体>< /html>

还有一些其他的可用的指令但只Sy欧宝娱乐app下载地址mfony管理# include虚拟一个。

谨慎

小心SSI,你的网站可能是注射的受害者。请阅读这OWASP的文章先!

当web服务器读取一个SSI指令,它请求URI或给了直接从缓存中。重复这个过程,直到没有更多的SSI指令来处理。然后,它合并所有响应为一个并将其发送给客户端。

在Symfony中使用SS欧宝娱乐app下载地址I

首先,使用SSI,一定要使它在应用程序中配置:

  • YAML
  • XML
  • PHP
1 2 3
#配置/包/ framework.yaml框架:ssi:{启用:真正的}

假设您有一个页面与私人内容概要页面和你想要缓存静态GDPR内容块。使用SSI,您可以添加一些过期块并保持私人页:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
/ / src /控制器/ ProfileController.php名称空间应用程序\控制器;/ /……ProfileController扩展AbstractController{公共函数指数():响应{/ /默认情况下,反应是私有的返回美元- >呈现(“配置文件/ index.html.twig”);}公共函数gdpr():响应{美元响应=美元- >呈现(“配置文件/ gdpr.html.twig”);/ /设置公共和添加一些过期美元响应- >setSharedMaxAge (600年);返回美元响应;}}

这个概要文件索引页没有公共缓存,但GDPR块有10分钟的过期。包括这个块为主要的:

1 2 3 4 5 6 7
{#模板/ profile / index . html。树枝#}{#你可以用一个控制器参考#}{{render_ssi(控制器(“应用程序控制器\ \ \ \ ProfileController:: gdpr '))}}{#……或URL #}{{render_ssi (url (profile_gdpr))}}

render_ssi树枝助手将产生类似:

1
< !——# include虚拟= " / _fragment吗?_hash = abcdef1234&_path = _controller = App \控制器\ ProfileController:: gdpr”- - >

render_ssi确保SSI生成指令只有在请求头的要求Surrogate-Capability:设备= " SSI / 1.0”(通常由web服务器)。否则它将直接嵌入sub-response。

请注意

关于Symfony的更多信息缓存片段,旅游欧宝娱乐app下载地址应急服务欧宝体育电话国际公司的文档

这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。