【问题标题】:Vaadin BrowserFrame with relative path具有相对路径的 Vaadin BrowserFrame
【发布时间】:2021-08-07 04:11:04
【问题描述】:

我正在尝试加载引用子目录中图像的 HTML 文件。这是结构: 基本上,BrowserFrame 无法加载 Overview_files 下的图像。如果我直接从桌面加载它就可以正常工作。

这是 HTML 代码的 sn-p:

<p class="MsoNormal" style="margin-top:0in;margin-right:0in;margin-bottom:0in;
margin-left:.75in;margin-bottom:.0001pt">
<span style="mso-no-proof:yes">
<!--[if gte vml 1]><v:shape
 id="_x0000_i1069" type="#_x0000_t75" style='width:1075.8pt;height:120pt;
 visibility:visible;mso-wrap-style:square'>
 <v:imagedata src="Overview_files/image003.png" o:title="" cropright="-6f"/>
</v:shape><![endif]--><!--[if !vml]-->
<img border="0" width="1434" height="160" src="Overview_files/image004.gif" v:shapes="_x0000_i1069">
<!--[endif]-->
</span>
</p>

这是我使用的 Vaadin 代码:

helpDoc = new BrowserFrame();
docResource = new FileResource( docFile ); // docFile is full path to file on disk, as a File
helpDoc.setSource(docResource);

我应该以不同的方式加载本地 HTML 文件吗?我看到一篇较早的帖子(2015 年,非常过时),其中一个人暗示他将其加载到 ZIP 文件中,但我不确定他是如何做到的。

【问题讨论】:

    标签: html vaadin vaadin7


    【解决方案1】:

    Vaadin BrowserFrame 是对 &lt;iframe&gt; 的抽象。

    FileResource 只加载 HTML 文件;它不会使文件夹或任何子资源可用。

    要使其正常工作,HTML 源代码 (iframe src) 应单独提供,例如,与您在服务器中配置的静态内容文件夹分开提供。

    【讨论】:

    • 它是一个静态资源,因为它是一个位于我的应用程序之外的静态、非动态文件(在磁盘上的某个位置,我的老板可以在不需要开发人员的情况下进行更新)。不过,您的意思可能有所不同。无论如何,这是否意味着必须使用ExternalResource 而不是FileResource,从而使用 URL 而不是文件系统路径?您能否更具体地说明“单独服务”的含义?我假设您的意思是通过普通 URL,但只是确认。
    • 正确。您需要通过 URL (ExternalResource) 使内容可访问。您可以将它们放在您的服务器已经在提供服务的公用文件夹中,或者将您的服务器配置为从它们所在的位置提供服务。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-27
    • 2016-08-03
    • 2011-07-30
    • 2015-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多