2

我是 liferay CMS 的新手。我正在 liferay 6.1.1 中开发一个主题。我的问题是当我对主题进行任何更改时,它在部署后没有得到反映。请检查我是否在正确的流程中:

  1. 首先新建 --> liferay 项目 --> 选定主题
  2. 部署了创建 -diffs 文件夹的主题以及主题内 docroot 文件夹中剩余的所有文件夹。
  3. 从我的主题的模板文件夹中复制 portlet_normal.vm 并进行更改。
  4. 将 portlet_normal.vm 粘贴到我的主题中的 docroot(folder) --> _diffs(folder) --> templates(folder)。
  5. 重新部署了主题,但没有反映任何变化。

我的 portlet_normal.vm 文件是:

<!DOCTYPE html>

#parse ($init)

<html class="#language("lang.dir")" dir="#language("lang.dir")" lang="$w3c_language_id">

<head>
    <title>$the_title - $company_name</title>

    $theme.include($top_head_include)
</head>

<body class="$css_class">

$theme.include($body_top_include)

#if ($is_signed_in)
    #dockbar()
#end

<div id="wrapper">
    <a href="#main-content" id="skip-to-content">#language("skip-to-content")</a>

    <header id="banner" role="banner">
        <div id="heading">
            <h1 class="site-title">
                <a class="$logo_css_class" href="$site_default_url" title="#language("go-to") $site_name">
                    <img alt="$logo_description" height="$site_logo_height" src="$site_logo" width="$site_logo_width" />
                </a>

                #if ($show_site_name)
                    <span class="site-name" title="#language("go-to") $site_name">
                        $site_name
                    </span>
                #end
            </h1>

            <h2 class="page-title">
                <span>$the_title</span>
            </h2>
        </div>

        #if (!$is_signed_in)
            <a href="$sign_in_url" id="sign-in" rel="nofollow">$sign_in_text</a>
        #end

        #if ($has_navigation || $is_signed_in)
            #parse ("$full_templates_path/navigation.vm")
        #end
    </header>

    <div id="content">
        **/*<nav class="site-breadcrumbs" id="breadcrumbs">
            <h1>
                <span>#language("breadcrumbs")</span>
            </h1>
            #breadcrumbs()
        </nav>*/**


        #if ($selectable)
            $theme.include($content_include)
        #else
            $portletDisplay.recycle()

            $portletDisplay.setTitle($the_title)

            $theme.wrapPortlet("portlet.vm", $content_include)
        #end
    </div>

    <footer id="footer" role="contentinfo">
        <p class="powered-by">
            #language("powered-by") <a href="http://www.liferay.com" rel="external">Liferay</a>
        </p>
    </footer>
</div>

$theme.include($body_bottom_include)

</body>

$theme.include($bottom_include)

</html>

实际上我想隐藏主页中显示的面包屑。所以我已经评论了 portlet_normal.vm 中的特定部分。

4

2 回答 2

2

您有两种可能性:
如果您正在开发,您可以将门户设置为开发模式,并将其添加
include-and-override=portal-developer.properties
到您的 portal-ext.properties 中,该属性应该位于门户根目录下。
如果您在生产中,则应禁用此选项,您应检查以下内容

尝试打开 SDK 中主题文件夹下的 XML 文件 build-common-theme.xml 并删除所有preservelastmodified="true"(或将它们设置为 false)。

preservelastmodified,如果为 true,则不会更新主题项目中的文件时间戳。因此,您的应用程序服务器不会检测到更改并重新部署主题。

于 2013-01-16T12:22:01.613 回答
0

从第 1 步开始,您似乎正在使用 Eclipse 创建 Liferay 主题项目。当您创建项目时,您将获得

在此处输入图像描述

现在您需要做的就是更改 _diffs 目录中的文件并使用 ant 文件 build.xml 构建主题,其余部分将由构建文件处理。我不确定为什么需要第 3 步和第 4 步。

如果问题仍然存在,需要注意的几点是:

velocity.engine.resource.manager.cache.enabled=false

在您的 portal-ext.properties 中设置此属性并重新启动服务器。

于 2012-11-22T01:30:38.597 回答