更新后,Site Logo不会立即更改

时间:2016-06-17 10:07:53

标签: liferay liferay-6 liferay-theme

我想从我的代码中更改网站徽标..当用户选择并保存图像时..它已更新但网站徽标不会立即更改...并且它并不总是复制..有时候我必须刷新网站徽标更改的页面,有时它会立即更改..

我附上了从我的表单中设置网站徽标的代码,

File adminCompanyLogoPicFile = uploadRequest.getFile("admin_company_logo");
        imageUploadReq(userObj,adminCompanyLogoPicFile,actionRequest);


public static void imageUploadReq(User userObj, File fileType,ActionRequest actionRequest) throws IOException, PortalException, SystemException{
        byte[] bytes = FileUtil.getBytes(fileType);
        ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY);
        if (Validator.isNotNull(userObj) && fileType != null && Validator.isNotNull(bytes) && bytes.length != 0) {
                if(siteLogoUpload){
                    LayoutSetLocalServiceUtil.updateLogo(themeDisplay.getScopeGroupId(), true, true, bytes);
                }else{
                    UserLocalServiceUtil.updatePortrait(userObj.getUserId(), bytes);
                }
        }
    }

1 个答案:

答案 0 :(得分:1)

有几层缓存可能导致这种情况:Liferay内部使用ehcache将一些对象保留在内存中。当您通过API更新时,我不确定这是否相关 - 但徽标也可能会被页面缓存。您可以尝试更新徽标,然后导航到自上次重新启动服务器以来从未显示(因此缓存)的页面。

此外,徽标可能包含一些HTTP级缓存信息。通常,站点徽标不会经常更改,因此可以指示浏览器暂时缓存它们。您可以通过检查DOM,显示徽标并在浏览器中重新加载(或移位重新加载),或者在刷新页面之前清除浏览器缓存来测试。