laravel的blade模板如何產生靜態化頁面?

來源:互聯網
上載者:User
百度了一下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應該也差不多)

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.