CSS 离线加载 BootsFaces 时出现问题

Problem with CSS loading in BootsFaces offline

我在使用 Bootsfaces 的 JSF Web Java 项目中遇到问题:当我与互联网断开连接时,默认库从互联网加载三个文件

项目离线时,加载页面时出现找不到这些文件的问题。我已经下载了依赖项并将它们放在需要它们的页面上,尽管它在离线时仍然会出现问题,原因是一直在寻找这些文件。 BootsFaces 是一个 JAR,因此您不太可能查找这些文件的调用。 有没有机会消除 运行 时间的文件负载?此外,加载本地文件对我来说更好,因为在连接速度慢的时候它会减慢网站加载速度。 这是父模板的代码片段:

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:p="http://primefaces.org/ui"
      xmlns:b="http://bootsfaces.net/ui"
      xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
    <h:head>
<link rel="shortcut icon" type="image/x-icon" href="#{templateBean.request}/assets/admin/img/favicon.png"/>
        <link rel="stylesheet" href="#{templateBean.request}/assets/admin/css/datatable/datatables.min.css"/>
        <link rel="stylesheet" href="#{templateBean.request}/assets/admin/css/font-awesome/font-awesome.min.css"/>

        <!-- Bootstrap CSS -->
        <link rel="stylesheet" href="#{templateBean.request}/assets/admin/css/bootstrap.min.css"/>

建议下载有问题的文件并在本地使用它们,并下载最新版本的 bootsfaces (1.4.1) 后,可以将问题减少到只有 1 个错误:datatables.js.

在父模板的开头我添加了这些行:

<h:outputStylesheet library="css" name="datatables.min.css"/>
<h:outputStylesheet library="css" name="font-awesome.min.css"/>
<h:outputScript library="js" name="datatables.min.js"/>

screenchot for files structure screenshot for the error during load page

在图像中你可以看到它是如何加载本地文件但仍在寻找互联网并且页面加载是 19 秒。

只需将这些文件的副本与您的 *.war 文件捆绑在一起。如果 BootsFaces 检测到类似“datatables.css”、“datatables.js”、“font-awesome " 或 "*fontawesome",它对本地版本很满意,并停止从 Internet 下载这些文件。

请更新到 BootsFaces 1.2.0+(如果您还没有更新)。一些早期版本有一个错误,使他们总是下载数据表库。

我们的展示中有更多关于该主题的信息:Dealing with resource files

更新: 我刚刚看到您包含了带有简单 HTML link 的文件。 BootsFaces 无法检测到这些 link。请改用 <h:outputStylesheet><h:outputScript>

感谢 Stephan Rauh 的贡献。您给我的解决方案非常有效。 解决方法是修改 web.xml 文件并添加这些行。无论如何,您必须下载并包含您尝试从 Internet 下载的文件。

<context-param>
        <param-name>net.bootsfaces.get_datatable_from_cdn</param-name>
        <param-value>true</param-value>
</context-param>