我正在将我的静态文件推送到我的Web应用程序的CND。为此,我使用了OmniFaces CDNResourceHandler
,效果很好。除了,我的风格不遵循。
我被映射为:
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.css
AND primefaces.css
的结果相同。
如果我将这些资源移除为CDNResourceHandler
处理,则页面会根据需要加载。我可以确认页面上正在加载这些文件(Inspect Element
- > resources
在网络浏览器中显示这些文件已存在且已加载。
有没有人经历过不通过CDN工作的PrimeFaces风格?有没有办法让这个工作?
我的应用程序运行于:
我已经进一步研究了这个问题,似乎css文件没有进程:CSS中的#{resources[]}
内容仍然存在。这可能是由于文件未达到Faces Servlet
url-pattern
。这让我相信能够实现我想要的东西我需要处理CND资源......?
奇怪的是,生成的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>
答案 0 :(得分:0)
只需用经典的CSS查找替换jsf资源查找 当我把我的主题外化时,这只是我想法中的两个大规模替换。
代替:
background:url("#{resource['primefaces:colorpicker/images/colorpicker_select.gif']}");
使用:强>
background:url("images/colorpicker_select.gif");
或者从这里下载更改的资源和映射:
http://forum.primefaces.org/viewtopic.php?t=38421