2012-03-28 52 views

回答

0

如果您的意思是清單文件,它應該進入/ app/webroot,您的虛擬主機也應該用於該網站的目錄。除此之外,這與CakePHP沒有任何關係。

看一看這樣的:http://www.html5rocks.com/en/tutorials/appcache/beginner/

+0

好的我知道什麼是應用程序緩存。 我想找到的是如何在CakePHP應用程序中使用清單文件foreach視圖。 但是,如果我必須將它放入/ app/webroot,它是一個用於聲明CakePHP應用程序的清單文件。 – albertopriore 2012-03-28 14:08:00

+0

閱讀我提供的鏈接。緩存文件沒有限制。當Cake生成頁面時,它將始終呈現一個佈局文件,該佈局文件將具有html標記,但它不是您呈現的HTML視圖/佈局。簡單地設置一個默認的清單文件,就像if(!isset($ cacheManifist)){echo'default.mf'; } else {echo $ cacheManifest;在任何視圖文件中設置var。 – burzum 2012-03-28 23:28:28

3

訪問一個清單文件中的所有觀點的最好和最簡單的方法是看你的佈局,例如

View/Layouts/default.ctp 

取代 <html>
<?php echo "<html manifest='".$this->webroot."manifest.php'>"; ?> 

其中manifest.php位於

app/webroot/manifest.php 

,看起來是這樣的:

<?php 
    header('Content-Type: text/cache-manifest'); 
    echo "CACHE MANIFEST\n"; 
    echo "\n\nNETWORK:\n"; 
    echo "*\n"; 

    echo "\n\nCACHE:\n"; 

    echo "# Version: 1\n"; 
?> 

所以只需要一次manifest.php和可用於所有視圖。

提示:
對於一個動態清單文件,你可以使用一個代碼片段從這裏:
http://nial.me/2010/01/using-the-html5-cache-manifest-with-dynamic-files/

1

我試過這個解決方案,把體現在default.thtml中,但它會導致一些問題,我所有的網頁被緩存...我認爲這是discribed在the spec「......即使是沒有明確提及引用的清單頁面被自動緩存」。

...這個我所有的頁面都被緩存了,每個頁面都檢查清單。而當另一個用戶登錄時,他們會看到最後一個用戶主頁和其他頁面。

最終溶液:創建網頁的重定向/加載

1 - 創建重定向頁面: 我不得不創建頁/ redirect.ctp文件和功能重定向(){}在頁面控制器。一個簡單的頁面,只需用hello消息以及基於applicationCache進度事件加載條:

VAR應用程序緩存= window.applicationCache;
//在頁面中進行一些更改';'進度',功能(事件){ console.log(event.loaded +「of」+ event.total +「files ...」); //對頁面進行一些更改'加載欄 },false);

2 - 只在重定向頁面裝載艙單: 在瀏覽/設計/默認。ctp我過濾了標籤以僅在重定向頁面中顯示清單:

<? if($ this-> request-> params ['controller'] =='pages'& &
$ this-> request-> params ['action'] =='redirect'):? >
< html manifest =「<?= $ this-> webroot?> manifest.php」>
<?否則:?>
< html>
<? endif; ?>

3 - 使用重定向頁面中的身份驗證部件帶領我的用戶
登錄後重定向頁面:
在AppController的一個設置好的權威性組件這樣

公共$組分=陣列(
'會話',
'驗證'=>數組(
'authError'=> 「用戶或密碼無效」,
'unauthorizedRedirect'=> 「/頁/重定向?ERR =登錄」,
'loginRedirect'=> 「/頁/重定向」,
'logoutRedirect'=> 「/」,
的LoginAction =>「/user/login「,
'authorize'=> array('Controller')

);

現在只能在清單推杆的元素將被緩存。緩存重定向頁面(根據規範),但applicationCache事件更新頁面託尼這個「dinamic」。