2009-11-05 67 views
12

我正在爲Liferay Portal開發portlet如何禁用Liferay portlet緩存?

我有殘疾的CSS和JavaScript緩存由portal-developer.properties文件中使用這些代碼:

 
theme.css.fast.load=false 
theme.images.fast.load=false 
javascript.fast.load=false 
javascript.log.enabled=true 
layout.template.cache.enabled=false 
last.modified.check=false 
velocity.engine.resource.manager.cache.enabled=false 
com.liferay.portal.servlet.filters.cache.CacheFilter=false 
com.liferay.portal.servlet.filters.layoutcache.LayoutCacheFilter=false 

但我不知道如何禁用Portlet緩存。

當我更新我的portlet目錄中的view.jsp文件時,我必須重新啓動Tomcat才能看到更改。

+0

我希望做類似的東西,除了當我對某些數據進行更改時,先前的數據將被緩存,直到進行新的刷新。基本上,Portlet的首選項會進行一些更改,直到頁面刷新才顯示,而不是在返回頁面時顯示更改。 – Organiccat 2010-08-11 15:28:39

回答

1

我曾經遇到過一些錯位時鐘的問題:當你通過網絡掛載編輯jsp,並且你的計算機認爲它是10:00而服務器認爲它已經是10:05時,可能會發生這種情況:

  • 你改變了JSP在10:01
  • 將tomcat看到它並編譯 - 一切正常,但到編譯頁中有10:06
  • 時間戳你又在10改變JSP :03
  • Tomcat看到更改的時間戳並將其與編譯頁面的時間戳:編譯頁面更新(時間戳方式),因此沒有編譯完成,並且頁面沒有反映您的更新
  • 您感到沮喪,重新啓動tomcat,需要2分鐘
  • 您在頁面糾正另一個錯誤,現在它的時間戳的10:07
  • Tomcat的將它拾起,編譯...

而且,我相信,記住一些「背景」的配置能夠改變JSP轉換行爲。你正在做一個不變的liferay/tomcat包嗎?當你在一臺機器上工作時也會發生同樣的情況嗎?當你拿一個新的捆綁包,解壓並重試時,會發生同樣的事情嗎?

0

爲什麼你重新啓動tomcat。只需將您的portlet部署到deploy目錄即可。這是最快的。 如果您從Eclipse IDE運行Liferay,我認爲這些更改會自動提取。

+0

由於liferay重新加載是垃圾並且經常無法正常工作(文件系統競爭條件豐富)。 – smaudet 2016-08-22 12:56:07

1

在doView方法中使用以下行: ABCUtil.clearCache() 並且還可以在您的portlet部署描述符中使用<expiration-cache>0</expiration-cache>

+1

@ user718609 - 跟隨哪一行? _歡迎,但請注意[標記格式幫助](http://stackoverflow.com/editing-help)和[關於帖子簽名的常見問題](http://stackoverflow.com/faq) - 使用[您的個人資料頁面] (http://stackoverflow.com/users/718609/user718609)或您的答案可能被標記爲垃圾郵件._ – McDowell 2011-05-05 13:12:57

1

我發現解決方案中使用MultiVMPoolUtil.clear();

1

之一趨於弄糟JSP重新加載的事情是使像一個奧拉夫科克描述的效果的時區差。通常情況下,您可以在日誌文件中找到它,因爲它會顯示「XXX未來已被修改」之類的內容。

由於這些搞砸了時間戳,新文件將無法正確檢測和使用。這可以通過將Tomcat的setenv.bat/setenv.sh文件中的時區更改爲適當的值來輕鬆解決。

5

使用最新版本的Liferay 6.2,您可以打開開發模式。

當使用Liferay的IDE

  1. 轉到Servers視圖並雙擊服務器

enter image description here

  • 選擇開發模式,保存配置並重啓服務器
  • enter image description here

    當不使用的Liferay IDE

    1. 編輯setenv.sh或setenv.bat(適用於Windows)在$ LIFERAY_DIR/$ TOMCAT_DIR /斌/
    2. 添加-Dexternal的屬性= portal- developer.properties到CATALINA_OPTS

    參考: https://www.liferay.com/documentation/liferay-portal/6.2/development/-/ai/using-developer-mode-with-themes-liferay-portal-6-2-dev-guide-09-en

    0

    我的問題是,部署沒有正在改變我修改javascript源代碼的更改。

    創建文件名爲:

    portal-ext.properties 
    

    具體目錄:

    C:\liferay-portal-6.2-ce-ga4\jboss-7.1.1\standalone\deployments\ROOT.war\WEB-INF\classes\ 
    

    隨着內容:窗口的filesys的

    Shortccomings:

    com.liferay.portal.servlet.filters.cache.CacheFilter=false 
    

    我有其他問題無法在tmp目錄中容納長時間的JBoss文件/路徑命名。

    部署是緩存文件,我刪除

    構建了緩存的文件,我刪除

    線在我的bat文件爲構建和部署:

    rd /q /s \liferay-portal-6.2-ce-ga4\jboss-7.1.1\standalone\tmp\work\jboss.web\default-host\my-portlet 
    rd /q /s \liferay-portal-6.2-ce-ga4\jboss-7.1.1\standalone\deployments\my-portlet.war 
    rd /q /s \liferay-portal-6.2-ce-ga4\liferay-plugins-sdk-6.2\portlets\my-portlet\docroot\WEB-INF\classes 
    ant.bat