如何在 中包括样式表的内容<style>?



我有一个使用这个的JSF 2.0页面:

<h:head>
<h:outputStylesheet name="screen.css" library="css" />
</h:head>

很好地生成了这个HTML:

<head>
<link type="text/css" rel="stylesheet" 
    href="/myapp/javax.faces.resource/screen.css.jsf?ln=css" />
</head>

这在浏览器中查看页面时非常有用。但是,我希望将此样式表嵌入到将通过电子邮件发送给用户的HTML页面中。我不希望他们的电子邮件客户端从服务器加载样式表。我希望通过电子邮件发送给他们的文档是自给自足的,不受网站样式表更改(甚至没有)的影响。

我希望HTML输出是这样的:

<head>
<style type="text/css">
    ...contents of screen.css here...
</style>
</head>

我试着用这个来达到这个目的:

<h:head>
<style type="text/css">
<ui:include src="/resources/css/screen.css"></ui:include>
</style>
</h:head>

但是我收到了这个错误:

javax.servlet.ServletException: Error Parsing /resources/css/screen.css: 
Error Traced[line: 1] Content is not allowed in prolog.
javax.faces.webapp.FacesServlet.service(FacesServlet.java:325)

如何让样式表的内容出现在文档的头部?

不使用标准JSF组件。

JSF实用程序库OmniFaces有一个<o:resourceInclude>,用于在JSF页面中包含非JSF web应用程序资源的原始输出。

<h:head>
    <style type="text/css">
        <o:resourceInclude path="/resources/css/screen.css" />
    </style>
</h:head>

注意,它不支持资源定位和版本控制,也不像<h:outputStylesheet>那样在CSS文件中计算EL表达式。

相关内容

  • 没有找到相关文章