Oracle WebCenter中的WSRP Portlet:未加载从CSS文件引用的图像

时间:2010-01-19 10:25:05

标签: oracle oracle11g portlet webcenter

如果WSRP portlet显示引用引用图像的css文件的jsp页面,则无法加载图像,因为无法找到css中的url。 css中的网址是一个相对的网址:../ images / image.gif。

我的问题详情

我开发了一个JSR168 portlet(Java Portlet Standard),我想在Oracle WebCenter 11g(以及其他JSR-complaint门户服务器)中部署它

我的portlet显示一个引用css文件的jsp,这个css引用了一些图像。所有这些资源(图像,css,jsps等)都包含在我的portlet的war文件中。

当我在WebCenter页面中加载portlet时,正确加载了css文件,但此css文件引用的图像没有。

原因是要生成css,WebCenter会生成一个长URL: http://localhost:8888/webcenter/resourceproxy/~.portletId~3D~252Foracle~252Fadf~252Fportlet~252FscopedMD~252Fs8bba98ff_4cbb_40b8_beee_296c916a23ed~252Fportlets~252Fclients3_366e85fa_e823_48ac_b37a_9890375111ab~26clientId ......(它的方式更长)

但是在这个css文件中,有相对的图像路径。当浏览器尝试加载它们时,网址为: http://localhost:8888/webcenter/resourceproxy/img/sprite.png 哪个不存在。

如何使WebCenter正确加载我的css文件中的图像?

如何将我的portlet部署到Oracle WebCenter 我解释一下,万一我应该采用不同的方式。

我的环境

WebCenter Suite(11.1.1.2.0)+ WebLogic Server(10.3.2) S.O:Windows XP SP3

提前感谢您的时间。

3 个答案:

答案 0 :(得分:1)

我有类似的问题。好吧,这不会给你一个解决方案,但会解释你为什么......

  

聚合页面的目标之一是该页面上包含的Portlet的常见外观[A500]。这不仅会影响Portlets周围的装饰,还会影响它们的内容。对所有Portlet使用通用CSS样式表并定义一组标准样式,可以提供这种常见的外观,而无需Portlet生成特定于消费者的标记。 Portlet应该使用本规范中的CSS样式定义,以便参与各种消费者对其内容的统一显示。对于支持CSS样式表的标记类型,消费者必须向最终用户代理提供CSS样式表,其中包含本规范[第9.5节]中定义的类的定义。

我认为有人在编写规范时犯了错误。

答案 1 :(得分:1)

不要使用像../../css/这样的相对路径,而是在CSS中使用<%= request.getContextPath()%> / css /,您仍然可以保留图像的相对路径。 ./../图像/.

答案 2 :(得分:0)

我认为您可以将应用程序服务器配置为通过引擎推送CSS文件,就像使用JSP一样。在这种情况下,您应该能够编译这些标签。