2012-02-29 38 views
0

我已經創建了一個允許在其中插入HTML片段的模塊。OpenCMS:如何從模塊訪問VFS /網站/默認/ HTML文件

這些HTML片段(純HTML頁面)將由CMS的用戶在虛擬文件system/sites/default /中創建。

我可以從我的模塊訪問HTML文件並將其插入生成的頁面嗎?怎麼樣?

當我使用iFrame時,圖像或鏈接一切正常......因爲所有這些元素都有src屬性。例如:

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

然而,當我使用OpenCms的標籤< CMS:包括>或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資源?

在此先感謝!

回答

0

好的,當你說:「我可以從我的模塊訪問」你的意思是從你的/system/modules/foo.bar.qux.my.module/...不是嗎?

在這種情況下,您會遇到此錯誤,因爲您沒有使用正確的路徑。

的例子是在您的情況:

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

那是因爲你的模塊裏面您位於下的「/」上下文,而不是在「/網站/默認/」背景下,這意味着您需要完全限定VFS中的路徑以包含該文件。

本示例以絕對方式指定路徑,但您也可以使用相對路徑,使用../和./來導航文件夾,而包含使用模塊的文件時,您可能會喜歡使用此路徑一個,但否則我會建議絕對路徑。