• 技术文章 >后端开发 >php教程

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

    2016-06-06 20:17:03原创1868
    百度了一下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()方法来生成静态页面,如下:

    __toString();

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

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php laravel html5
    上一篇:已经安装'laravel/homestead' box,但是执行homestead up时提示找不到box,怎么办? 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 聊聊php百万数据怎么写入csv• php后台如何避免用户直接进入方法实例_php实例• 关于phpcms 中头像下传 那位高手说上怎么实现的• 请问下php的zend加密的有关问题• 引入命名空间后 为啥不用指定文件路径
    1/1

    PHP中文网