問題
- ポートレット インスタンスの ID がステージング環境と実環境で異なる
- 再現手順:
- コンテンツ エディター ポートレットをページに追加します。
- ステージングに進みます。
-
ステージング: 「構成」を編集します。
- 「高度なスタイル」タブに移動します。
- 「このポートレットのみに CSS コードを追加する」ボタンをクリックし、「カスタムスタイルを入力してください」に { }コードを追加します。
- スタイルを変更し タイトルを変更します。 margin-bottom: 5px; }
- Cステージングを実行しますが、変更は効果がありません!
- productionに入り、ポートレットに移動して「構成」と入力します
- 「高度なスタイル」タブに移動します
- ステージングで追加したコードはそのままです。
- 「このポートレットのみに CSS コードを追加する」ボタンをクリックすると、ステージングと同じように追加されます。
- ログインせずに本番環境に移行し、ブラウザー インスペクターを使用して、ID "portlet_com_liferay_asset_publisher_web_portlet_AssetPublisherPortlet_INSTANCE_OCHcO7s000oU"のポートレットを探します。
結果: 表示されない! 代わりに 次の ID をポートレットが表示されます。
ほぼ同じであることに注意してください。 始まりも終わりも違う。 でも中心部は同じ。 最初に「portlet」を「p_p_id」に変更し、最後に「_」を追加します。
Environment
- Liferay DXP 7.0
解決策
- この問題は、テーマの portlet.ftl ファイルに手動で介入した場合にのみ発生します。
- 正確には、portlet.ftl で 以下のタグを変更または省略した場合、スタイルは保証されません:
<section class = "portlet" id = "portlet _ $ {portlet_id}"> - このスタイルを追加すると、問題が解決します。