OpenCMS: как получить доступ из модулей к VFS /sites/default/ HTML-файлу
Я создал модуль, который позволяет вставлять в него фрагменты HTML.
Эти HTML-фрагменты (обычные HTML-страницы) будут созданы пользователем CMS в виртуальной файловой системе / sites / default /.
Могу ли я получить доступ из моего модуля к файлу HTML и вставить его в созданную страницу? как?
Когда я использую iFrame, изображение или ссылка все работает нормально... потому что все эти элементы имеют атрибут src. Например:
<iframe src="/opencms/demo_en/myfile.html"></iframe>
Однако когда я использую тег openCMS
<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 для включения файла.
В этом примере указывается абсолютный путь, но вы также можете использовать относительный путь, используя../ и./ для навигации по папкам, в то время как вы включаете файлы с вашим модулем, вы можете использовать этот, но в противном случае Я бы порекомендовал абсолютный путь.