转到在自定义xpages osgi库中提供css和csjs资源的方法

转到在自定义xpages osgi库中提供css和csjs资源的方法,xpages,xpages-extlib,Xpages,Xpages Extlib,我很难找到在自定义xpages库中提供css和csjs资源的正确方法。我找不到任何关于如何用我的osgi插件打包这些资源的好信息 我查看了extlib实现,但无法真正了解ResourceHandler部分中正在发生的事情(如果这些部分实际上与我需要的内容相关的话)。那么,如果要在库中部署(比如)dojo dijit,需要采取哪些步骤呢?这是为我做的: 创建一个;在构造函数中,加载一个基本上位于Extlib资源处理之上的自定义ExtLibLoaderExtension。要使用它,资源需要进入“/r

我很难找到在自定义xpages库中提供css和csjs资源的正确方法。我找不到任何关于如何用我的osgi插件打包这些资源的好信息

我查看了extlib实现,但无法真正了解ResourceHandler部分中正在发生的事情(如果这些部分实际上与我需要的内容相关的话)。那么,如果要在库中部署(比如)dojo dijit,需要采取哪些步骤呢?

这是为我做的: 创建一个;在构造函数中,加载一个基本上位于Extlib资源处理之上的自定义
ExtLibLoaderExtension
。要使用它,资源需要进入“/resources/web/extlib”的子文件夹,其名称由这个
ExtLibLoaderExtension
指定

激活剂:

public class MyCustomActivator extends Plugin {

    public static MyCustomActivator instance;

    public MyCustomActivator() {
        instance = this;

        ExtLibLoaderExtension.getExtensions().add(new MyCustomLoader());
    }
}
ExtLibLoaderExtension:

public class MyCustomLoader extends ExtLibLoaderExtension {

    public MyCustomLoader(){

    }

    @Override
    public Bundle getOSGiBundle() {
        return MyCustomActivator.instance.getBundle();
    }

    @Override
    public URL getResourceURL(HttpServletRequest request, String name) {
        if(name.startsWith("[put subfolder name here]")) {
            String path = ExtlibResourceProvider.BUNDLE_RES_PATH_EXTLIB+name;
            return ExtLibUtil.getResourceURL(
                MyCustomActivator.instance.getBundle(), path);
         }
        return null;
    }

}

确保您的资源文件夹包含在
plugin.xml
的构建部分。在“概述”选项卡上,在左上角的“常规信息”部分中提供Activator类。完成所有这些之后,部署updateSite并重新启动http任务后,您可以使用/xsp/.ibmxspres/.extlib/[put subfolder name here]/junction从Webbrowser访问资源。

Bootstrap4XPages实现()如何?也许你可以找到一个答案:它比ExtLib小得多,其目的之一是提供css/csjs。这个blogpost()也有一些很好的信息。嗨,马克,谢谢你给我介绍bootstrap4xpages项目。我以前已经看过了,但显然不够近。我或多或少地复制了从那里提取的方法,并通过一些摆弄最终奏效了!我在下面添加了答案,希望我没有忘记任何事情。