如何将与远程文件一起使用?

我有一个专门用于静态内容的服务器,所以我不想使用资源目录存储javascript文件,但我不想停止使用标记。

如何使该标记生成指向文件所在的静态服务器的链接,而不是RES_NOT_FOUND 。 我甚至不需要JSF检查文件是否存在…

我试过了:

生成:

但它会生成:

我能做什么?

解决方案:丹尼尔给我一个很好的解决方案!

我已经下载了Omnifaces的源代码并将org.omnifaces.resourcehandler.CDNResourceHandle.createResource(String resourceName, String libraryName)方法修改为:

 public Resource createResource(String resourceName, String libraryName) { final Resource resource = wrapped.createResource(resourceName, libraryName); if (cdnResources == null) { return resource; } String resourceId = ((libraryName != null) ? libraryName + ":" : "") + resourceName; String path = cdnResources.get(resourceId); if(path == null){ if(libraryName != null){ resourceId = libraryName + ":%"; path = cdnResources.get(resourceId); if(path == null){ return resource; } path += "/"+resourceName; } else return resource; } final String requestPath = path; return new ResourceWrapper() { @Override public String getRequestPath() { return requestPath; } @Override public Resource getWrapped() { return resource; } }; } 

通过此更改,我可以将其添加到我的web.xml文件中

  org.omnifaces.CDN_RESOURCE_HANDLER_URLS  somelib2:%=http://cdn.example.com/somelib2, js/script1.js=http://cdn.example.com/js/script1.js, somelib:js/script2.js=http://cdn.example.com/somelib/js/script2.js, otherlib:style.css=http://sofzh.miximages.com/java/logo.png=http://sofzh.miximages.com/java/logo.png   

请注意somelib2:%=http://cdn.example.com/somelib2 ,这会将somelib2库中的任何资源指向http://cdn.example.com/somelib2中的相对路径,例如:

将输出:

这适用于 ,任何使用资源的东西;

你不能

只是因为只能读取您的Web应用程序中的本地资源文件夹

你可以做的是使用 Omnifaces CDNResourceHandler ,这里是JavaDoc

它允许您使用远程文件

这里展示了一些代码

要使其运行,需要在faces-config.xml中按如下方式注册此处理程序:

  org.omnifaces.resourcehandler.CDNResourceHandler   org.omnifaces.CDN_RESOURCE_HANDLER_URLS  js/script1.js=http://cdn.example.com/js/script1.js, somelib:js/script2.js=http://cdn.example.com/somelib/js/script2.js, otherlib:style.css=http://sofzh.miximages.com/java/logo.png=http://sofzh.miximages.com/java/logo.png   

通过以上配置,以下资源:

     

我想你不需要那个。 它用于显示从类路径中的归档中获取的脚本。 对于常规脚本,您只需键入相应的标记即可。