0

我正在将我的静态文件推送到我的 Web 应用程序的 CND。为此,我使用CDNResourceHandler了运行良好的 OmniFaces。除了,我的风格不遵循。

我是这样映射的:

javax.faces:jsf.js=http://.../jsf.js,
primefaces:primefaces.js=http://.../primefaces.js,
primefaces:jquery/jquery.js=http://.../jquery.js,
primefaces:jquery/jquery-plugins.js=http://.../jquery-plugins.js,
primefaces:idlemonitor/idlemonitor.js=http://.../idlemonitor.js,
        
primefaces-smoothness:theme.css=http://.../theme.css,
primefaces:primefaces.css=http://.../primefaces.css,
styles:main04.css=http://.../main04.css,

这很好用,除了我的样式都关闭了。渲染结果与未加载theme.cssAND时相同。primefaces.css

如果我删除这些由 处理的资源CDNResourceHandler,则页面将按需要加载。我可以确认这些文件正在页面上加载(Inspect Element->resources在网络浏览器中显示这些文件在那里并已加载)。

有没有人经历过不通过 CDN 工作的 PrimeFaces 样式?有没有办法让它工作?

我的应用程序运行在:

  • OmniFaces 1.6
  • Primefaces 3.5
  • 马约拉 2.2
  • Glassfish 3.1.2.2(也在 Glassfish 4 上尝试过)

编辑 1

我对此进行了更深入的研究,似乎 css 文件未处理:#{resources[]}CSS 中的某些内容保持原样。这将是由于文件不符合Faces Servlet url-pattern. 这让我相信要实现我正在寻找的东西,我需要处理 CND 资源......?

编辑 2

奇怪的是,生成的 HTML 包含所有已加载的资源。如果通过 CDN 加载,似乎不会处理资源(Primefaces 样式)。

这是页面不工作时加载的资源。除了 Primefaces 提供的基本样式外,一切都是功能性的。

<link type="text/css" rel="stylesheet" href="http://.../theme.css" />
<link type="text/css" rel="stylesheet" href="http://.../primefaces.css" />
<link type="text/css" rel="stylesheet" href="http://.../main04.css" />
<link type="text/css" rel="stylesheet" href="http://.../main_compact.css" />
<link type="text/css" rel="stylesheet" href="http://.../ironmanCompact.css" />
<script type="text/javascript" src="http://.../jquery.js"></script>
<script type="text/javascript" src="http://.../primefaces.js"></script>
<script type="text/javascript" src="http://.../idlemonitor.js"></script>
<script type="text/javascript" src="http://.../jquery-plugins.js"></script>
<script type="text/javascript" src="http://.../jsf.js"></script>
<script type="text/javascript" src="http://.../jquery.ba-postmessage.js"></script>
<script type="text/javascript" src="http://.../tracker.js"></script>
<script type="text/javascript" src="http://.../socialMedia.js"></script>

通过从 CDN 中删除 Primefaces 样式,以下生成的 HTML 可以完美运行并生成应有的页面。

<link type="text/css" rel="stylesheet" href="/myapp/javax.faces.resource/theme.css.xhtml?ln=primefaces-smoothness" />
<link type="text/css" rel="stylesheet" href="/myapp/javax.faces.resource/primefaces.css.xhtml?ln=primefaces" />
<link type="text/css" rel="stylesheet" href="http://.../main04.css" />
<link type="text/css" rel="stylesheet" href="http://.../main_compact.css" />
<link type="text/css" rel="stylesheet" href="http://.../ironmanCompact.css" />
<script type="text/javascript" src="http://.../jquery.js"></script>
<script type="text/javascript" src="http://.../primefaces.js"></script>
<script type="text/javascript" src="http://.../idlemonitor.js"></script>
<script type="text/javascript" src="http://.../jquery-plugins.js"></script>
<script type="text/javascript" src="http://.../jsf.js"></script>
<script type="text/javascript" src="http://.../jquery.ba-postmessage.js"></script>
<script type="text/javascript" src="http://.../tracker.js"></script>
<script type="text/javascript" src="http://.../socialMedia.js"></script>
4

1 回答 1

0

只需将 jsf 资源查找替换为经典的 css 查找即可。
当我将我的主题外化时,这只是我 ide 中的两个大规模替代品。

代替:

background:url("#{resource['primefaces:colorpicker/images/colorpicker_select.gif']}");

利用:

background:url("images/colorpicker_select.gif");

或者从这里下载更改的资源和映射:http:
//forum.primefaces.org/viewtopic.php?t=38421

于 2014-06-04T23:57:07.403 回答