【问题标题】:Html page not loading css and js files when loaded from a jar file into a JavaFx Webview从 jar 文件加载到 JavaFx Webview 时,Html 页面未加载 css 和 js 文件
【发布时间】:2017-07-23 07:59:56
【问题描述】:

我一直在论坛中搜索答案和类似帖子,但没有一个可以帮助我解决我的问题。

我正在开发一个独立项目 - 不涉及服务器。我正在尝试使用类似于以下的代码将 jar 文件中存在的 html 文件加载到 JavaFX Webview 中

webView.getEngine()
 .load(this.getClass().getResource("htmlInsideJar.html").toExternalForm());

页面加载到 webView 中,但是关联的 JS 和 CSS 文件没有加载到 HTML 页面中。

但是,当直接从磁盘加载时,HTML 页面可以很好地加载所有相关的 css 和 js 文件

webView.getEngine()
    .load("htmlFromDiskDirectly.html").toString());

我对包含 html、css 和 js 内容的文件使用相同的文件文件夹结构。

我使用的java版本如下 java版本“1.8.0_121” Java(TM) SE 运行时环境 (build 1.8.0_121-b13) Java HotSpot(TM) 客户端虚拟机(内部版本 25.121-b13,混合模式)

任何帮助将不胜感激。

谢谢

【问题讨论】:

    标签: html javafx webview jar


    【解决方案1】:

    我已找到解决此问题的方法。我正在使用 requireJs 将我的脚本加载到 html 页面中。虽然页面在

    中加载得非常好
    1. IE
    2. 火狐
    3. 镀铬
    4. 甚至在 Eclipse 的内置网络浏览器中

    JavaFX Web 引擎准确地捕获了一些错误,因为我在 require 语句中拼错了文件依赖项。

    我使用了类似 require(['../abcModule/FileDependecy'] .... 而不是 require(['../abcModule/fileDependecy'] 之类的东西。更改一些这样的东西可以解决问题并页面加载成功。必须花费 3 多个小时才能找到修复它。grrr –

    感谢 fire-bug lite。虽然它没有在 JavaFx webview 中整齐地加载,但我能够从粗略的数据中挖掘错误信息,从而解决了问题。

    希望对大家有所帮助

    【讨论】:

      【解决方案2】:

      我没有找到解决方案,所以我求助于将资产文件夹放在 jar 之外。

      // i set the html base tag with this
      String BASE_URL = Paths.get("").toUri().toString();
      String pageContent = ReadFileToString.read("page.html").replace("{BASE_URL}", BASE_URL);
      

      在 html 文件中我有这样的东西

      <base href="{BASE_URL}">
      <link rel="stylesheet" href="assets/style.css">
      

      注意。 ReadFileToString.read() 只是一个自定义实用程序,它读取一个 html 文件并以字符串格式返回它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-07-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-01
        • 2018-01-14
        相关资源
        最近更新 更多