0

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

我的问题的详细信息

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

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

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

The reason is that to generate the css, WebCenter generates a long 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 套件 (11.1.1.2.0) + WebLogic Server (10.3.2) SO:Windows XP SP3

在此先感谢您的时间。

4

3 回答 3

1

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

于 2010-03-01T08:05:36.087 回答
1

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

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

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

于 2010-02-22T18:35:28.547 回答
0

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

于 2011-01-14T21:09:32.737 回答