Home >Backend Development >PHP Tutorial >laravel的blade模板如何生成静态化页面?

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

WBOY
WBOYOriginal
2016-06-06 20:17:032689browse

百度了一下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应该也差不多)

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn