>  기사  >  백엔드 개발  >  laravel的blade模板如何生成静态化页面?

laravel的blade模板如何生成静态化页面?

WBOY
WBOY원래의
2016-06-06 20:17:032670검색

百度了一下php的静态化技术,大致有3种:
1.用正则替换页面模板文件
2.用ob_star技术
3.用第三方模板引擎

一开始很天真,以为在控制器里直接用$page=View('index');然后把$page保存起来就是静态页面,后来调试一下发觉$page是一个实体,也没有哪个属性记录到生成的html内容,就放弃了。

换了ob_star技术,但是在blade模板的第一行加入ob_star(),在页面最后一行加上ob_get_contents()等代码来获取页面流,写入一个文件。结果是成功把生成的页面写入html文件,但是浏览器中看到的页面是空白的。

求静态化解决方案。。。。。

回复内容:

百度了一下php的静态化技术,大致有3种:
1.用正则替换页面模板文件
2.用ob_star技术
3.用第三方模板引擎

一开始很天真,以为在控制器里直接用$page=View('index');然后把$page保存起来就是静态页面,后来调试一下发觉$page是一个实体,也没有哪个属性记录到生成的html内容,就放弃了。

换了ob_star技术,但是在blade模板的第一行加入ob_star(),在页面最后一行加上ob_get_contents()等代码来获取页面流,写入一个文件。结果是成功把生成的页面写入html文件,但是浏览器中看到的页面是空白的。

求静态化解决方案。。。。。

解析开始是由__toString()触发的

解析过程中是用ob_start实现的,使用了很多次ob_start

你可以看下Illuminate\View\View这个类

也可以调用Illuminate\View\View__toString()方法来生成静态页面,如下:

<code><?php $htmlStrings = view('viewPath')->__toString();</code>

对于laravel 5(4应该也差不多)

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.