2

私はliferay CMSの初心者です。liferay 6.1.1 でテーマを開発しています。私の問題は、テーマに変更を加えているときに、展開後に反映されないことです。私が正しい流れにいるかどうかを確認してください:

  1. 最初に新規 --> liferay プロジェクト --> 選択したテーマ
  2. -diffs フォルダーと、テーマ内の docroot フォルダー内の残りのすべてのフォルダーを作成したテーマをデプロイしました。
  3. テーマのテンプレート フォルダーから portlet_normal.vm をコピーし、変更を加えました。
  4. 私のテーマの docroot(folder) --> _diffs(folder) --> templates(folder) 内に portlet_normal.vm を貼り付けました。
  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

2つの可能性
があります。開発中の場合、ポータルを開発モードに設定して
include-and-override=portal-developer.properties
、ポータルルートの下にあるportal-ext.propertiesに追加できます。
本番環境にいる場合は、このオプションを無効にする必要があり、以下を確認する必要があります

SDKのthemesフォルダーの下にある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 が必要な理由がわかりません。

問題が解決しない場合は、次の点を確認してください。

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

portal-ext.properties でこのプロパティを設定し、サーバーを再起動します。

于 2012-11-22T01:30:38.597 に答える