0

内部に HTML フラグメントを挿入できるモジュールを作成しました。

これらの HTML フラグメント (プレーンな HTML ページ) は、仮想ファイル システム /sites/default/ で CMS のユーザーによって作成されます。

モジュールから HTML ファイルにアクセスして、生成されたページに挿入できますか? どうやって?

iFrame を使用すると、画像またはリンクはすべて正常に機能します...これらの要素にはすべてsrc 属性があるためです。例えば:

<iframe src="/opencms/demo_en/myfile.html"></iframe>

しかし、openCMS タグ< cms:include >または JSP タグ< jsp:include >を使用すると機能しません...なぜですか?

<cms:include page="/opencms/demo_en/myfile.html"></cms:include>

スロー:

org.opencms.file.CmsVfsResourceNotFoundException: Unable to read resource "/opencms/demo_en/myfile.html"

パーミッションの問題でしょうか?

だから.. iFrameでこれを行う必要がありますか? この HTML リソースにアクセスして埋め込むより良い方法はありますか?

前もって感謝します!

4

1 に答える 1

0

OK、あなたが言っているのは、「私のモジュールからアクセスできますか」というのは、/system/modules/foo.bar.qux.my.module/... からということですよね?

この場合、正しいパスを使用していないため、このエラーが発生しています。

例はあなたの場合です:

<cms:include page="/sites/default/demo_en/myfile.html"></cms:include>

これは、モジュール内では、「/sites/default/」コンテキストではなく「/」コンテキストにあるためです。つまり、ファイルを含めるには、VFS でパスを完全修飾する必要があります。

この例では絶対パスを指定しますが、../ と ./ を使用して相対パスを使用してフォルダーをナビゲートすることもできます。モジュールにファイルを含める場合は、これを使用することもできますが、それ以外の場合は絶対パスをお勧めします。

于 2012-03-14T17:02:10.870 に答える