OpenCMS:如何从模块访问VFS / sites / default / HTML文件

时间:2012-02-29 12:33:10

标签: opencms

我创建了一个允许在其中插入HTML片段的模块。

这些HTML片段(纯HTML页面)将由CMS的用户在虚拟文件系统/ sites / default /中创建。

我可以从我的模块访问HTML文件并将其插入生成的页面吗?如何吗

当我使用iFrame时,图像或链接一切正常......因为所有这些元素都有 src属性。例如:

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

然而,当我使用openCMS标签&lt; cms:include&gt; 或JSP标记&lt; jsp:include&gt; 它不起作用......为什么?

<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 个答案:

答案 0 :(得分:0)

好的,当你说:“我可以从我的模块访问”你的意思是/system/modules/foo.bar.qux.my.module / ...不是吗?

在这种情况下,您收到此错误是因为您没有使用正确的路径。

例子就是你的情况:

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

这是因为在您的模块中,您位于“/”上下文中,而不是在“/ sites / default /”上下文中,这意味着您需要完全限定VFS中的路径以包含该文件。

此示例以绝对方式指定路径,但您也可以使用相对路径,使用../和./来浏览文件夹,而当您包含带有模块的文件时,您可能希望使用此路径,但除此之外我会推荐绝对路径。