我正在将我的静态文件推送到我的 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.css
AND时相同。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>