tridionサイト9.5からcssとJSを管理および公開し、dxa 2.2 javaWebアプリケーションで使用します。

Dec 16 2020

cssとjsがhtml-build.zipで処理されないシナリオを思いつきました。

代わりに、cssとjsをcmに保存し、それらのパブリケーションを賢く公開する必要があります。

また、Webアプリケーションのjspsでこれらのcssファイルとjsファイルを使用する必要があります。

誰かがこれをどのように達成できるか私に提案してもらえますか?

回答

3 paceaux Dec 16 2020 at 18:57

私は過去に何度もTridionを使用してCSSとJavaScriptを公開しました。

すべての実装が異なることに注意してください。私がしたことはあなたがしたことではうまくいかないかもしれません。

コードコンポーネント+ページテンプレート

最も一般的なアプローチは、20〜30行に設定された単一のプレーンテキストフィールドを持つTridionスキーマである「コードコンポーネント」です。CSSとJavaScriptは文字通りコピーされ、フィールドに貼り付けられます。Razor Mediator for Tridion(またはDWT)で記述されたコンポーネントテンプレートは単一のフィールドをレンダリングし、出力は.cssまたは.jsファイルです。

1つの実装では、コードスキーマにメタデータを追加して、難読化と縮小化を切り替えられるようにしました。これには、もちろんこれらのタスクを実行できる.netTBBを追加する必要がありました。

コードコンポーネントから1つのフィールドをレンダリングすることが唯一の仕事であるCSSおよびJSページテンプレートを作成します。基本的に、これはCSSまたはJSを単一の.cssまたは.jsファイルに連結する仕事をしました。

私はこのアプローチをTridionR5.1-2011で使用しました。これは、最近の実装では見られなかった古いアプローチです。TridionからファイルサーバーにJSPまたはHTMLページを公開するときに機能しました。

欠点:

  • 静的ファイルを公開していない場合はうまく機能しません
  • コピーと貼り付けでの文字起こしエラーのリスク(はい、本当に)
  • CSS / JSがうまく書かれていないと、奇妙な結果になります。そのページテンプレートを使用すると、コードコンポーネントの順序を設定できます。コードの記述が不十分な場合、一部のスタイルまたはJSブロックが他のスタイルを上書きしたり、あるものが別のものに依存していると機能しなくなったりする可能性があります。

利点:

  • 実装が簡単
  • 「コンテンツとしてのコード」。一部の組織には厳格な変更管理プロセスがあり、コードをコンテンツとして扱うことは、それらのプロセスをバイパスできることを意味します。

バイナリとしてのCSS / JS

これは前の例の単なるスピンですが、ここでの考え方は、.cssおよび.js mimeタイプをTridionに追加し、それらをバイナリとしてアップロードできるようにすることです。これにより、コピーアンドペーストによる転記エラーの手間が省けます。

Tridionから直接アセットを公開すると、公開が簡素化されます。

欠点

  • 転記エラーのリスクは単純化されていますが、それでも「コンテンツとしてのコード」シナリオです。
  • バイナリの名前を変更することは、あらゆる種類の問題があります。その結果、サーバーにアクセスして.cssファイルを手動で削除する可能性があります(または、以前は削除されていました)。また、サイトが破損する可能性もあります。

利点

  • 実装が簡単
  • 他のオプションよりもコピーパスタエラーが発生する可能性が低い

私はこれらのシナリオの両方を実行しました。TridionでCSSプリプロセッサを実行するための特別なTBBを作成した場合もあるので、CMSにSASS / SCSSを含めることができます。

これらのアプローチには大きな欠点があります。最も重要なことは、特定のページテンプレートを実際に設定して、ブローカーに送信せずに静的ファイルとして公開できるようにすることです(実際のコンテンツとして扱われます)。

「バイナリとしてのCSS / JS」アプローチでは、画像、ビデオ、PDFのように扱われます。あなたはそれを望まないかもしれません。

NeeteshNarvaria Jan 11 2021 at 11:54

ビルドファイルのzipコンポーネントでgrunt命令を操作し、すべてのcssとjsおよび静止画像をhtml-design zipコンポーネントに配置し、「Publish HTMLdesign」テンプレートで必要とされる構造グループも作成しました。これにより、cssとjsを公開できます。テンプレートに触れたり、Webアプリケーション側で変更したりすることなく、dxaバイナリコンテンツとして。