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

问题描述 投票:0回答:3

如果WSRP portlet显示引用引用图像的css文件的jsp页面,则无法加载图像,因为无法找到css中的url。 css中的url是一个相对的:../ 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

在此先感谢您的时间。

oracle oracle11g portlet webcenter
3个回答
1
投票

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

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

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


1
投票

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.