【问题标题】:Loading CSS from cloud从云端加载 CSS
【发布时间】:2014-05-08 12:20:12
【问题描述】:

我正在尝试将 CSS 文件加载到我的页面中。此 CSS 文件不驻留在我的资源文件夹中。我只有完整的链接 - 它位于 CDN 上(即:云文件)。

需要在页面中加载所有其他样式表之后加载此 CSS。我目前正在<f:facet name="last"> 中加载我的“正常”样式表。但现在我想加载另一张纸。基本上我需要的是那种东西:

<f:facet name="last">
    <h:outputStylesheet name="bootstrap.min.css" library="styles" />
    <h:outputStylesheet name="styles.css" library="styles" />
    <h:outputStylesheet name="http://my.link.to/stylesheet/sheet.css" />
</f:facet>

但是outputStylesheet 不适用于链接,并且使用普通的旧link 标签在last facet 中不起作用。

我正在使用Primefaces,所以我希望在Primefaces 样式之后加载bootstrapstyles.css 和我的链接CSS -> 它们在f:facet name="last" 中的原因

使用:

  • Mojarra 2.1.23
  • Primefaces 3.5
  • Omnifaces 1.6

正在运行:

  • Glassfish 3.1.2.2

【问题讨论】:

  • 您能否发布包含上述方面的模板 xhtml

标签: css jsf jsf-2 primefaces


【解决方案1】:

通过标准的 JSF 2 标签,这目前是不可能的。您必须创建一个自定义 ResourceHandler 来从云端获取文件。

如果您愿意使用外部库,那么优秀的库 Omnifaces 已经为您的案例提供了资源处理程序 - CDNResourceHandler

另见:

【讨论】:

  • 如果您的库中有文件(即:web.xml 需要此资源及其 URL),则此方法有效。就我而言,资源(样式表)来自数据库。假设我有事件,并且事件表中有一个自定义 CSS(可能不存在) - 我无法将所有这些资源放在我的 web.xml 中。
  • 在这种情况下,您始终可以创建自己的 ResourceHandler 实现。初学者可以参考this example
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-22
  • 2017-12-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-27
  • 2023-03-12
相关资源
最近更新 更多