OpenCMS: как получить доступ из модулей к VFS /sites/default/ HTML-файлу

Я создал модуль, который позволяет вставлять в него фрагменты HTML.

Эти HTML-фрагменты (обычные HTML-страницы) будут созданы пользователем CMS в виртуальной файловой системе / sites / default /.

Могу ли я получить доступ из моего модуля к файлу HTML и вставить его в созданную страницу? как?

Когда я использую iFrame, изображение или ссылка все работает нормально... потому что все эти элементы имеют атрибут src. Например:

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

Однако когда я использую тег openCMS или тег JSP , он не работает... почему?

<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?

Заранее спасибо!

1 ответ

Хорошо, когда вы говорите: "Могу ли я получить доступ из моего модуля", вы имеете в виду из вашего /system/modules/foo.bar.qux.my.module/... не так ли?

В этом случае вы получаете эту ошибку, потому что вы не используете правильный путь.

Пример будет в вашем случае:

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

Это связано с тем, что внутри вашего модуля вы находитесь в контексте "/", а не в контексте "/sites/default/", это означает, что вам нужно полностью указать путь в VFS для включения файла.

В этом примере указывается абсолютный путь, но вы также можете использовать относительный путь, используя../ и./ для навигации по папкам, в то время как вы включаете файлы с вашим модулем, вы можете использовать этот, но в противном случае Я бы порекомендовал абсолютный путь.

Другие вопросы по тегам