0

我有一个简单的 Vaadin Flow 应用程序(与 SpringBoot 集成)作为 war 文件部署在 Tomcat 下。应用程序在本地开发模式下运行良好,但在上下文中的容器中部署时,它没有显示任何内容。当我查看页面源代码时,我可以看到聚合物资源 ​​URL 以“/frontend/”开头,因此不支持上下文并且浏览器无法加载它。

我还可以看到(在浏览器的页面源代码中)一些 URL 以“./frontend/”开头,一些以“/frontend/”开头,请参见下面的示例。我尝试了这个和那个,但无法弄清楚如何让 Vaadin 生成相对的 URL 或尊重 Tomcat 容器给出的上下文。知道这里有什么问题吗?所有这些聚合物资源都是来自 Vaadin 的通用资源,不是定制的。

<link rel="import" href="/frontend/bower_components/polymer/lib/utils/array-splice.html">
<link rel="import" href="/frontend/bower_components/polymer/lib/mixins/gesture-event-listeners.html">
<link rel="import" href="/frontend/bower_components/polymer/lib/elements/dom-if.html">
<link rel="import" href="/frontend/bower_components/polymer/lib/mixins/properties-changed.html">
<link rel="import" href="/frontend/bower_components/polymer/lib/utils/gestures.html">
<link rel="import" href="/frontend/bower_components/polymer/lib/elements/array-selector.html">
<link rel="import" href="/frontend/bower_components/polymer/lib/legacy/polymer.dom.html">


<link rel="import" href="./frontend/bower_components/vaadin-button/theme/lumo/vaadin-button.html">
<link rel="import" href="./frontend/bower_components/vaadin-ordered-layout/theme/lumo/vaadin-vertical-layout.html">
4

1 回答 1

0

计划在不久的将来改进此行为,这是用于跟踪进度的问题链接。

现在,您可以通过添加自定义 servlet 来为前端文件提供服务来解决此问题:

import javax.servlet.annotation.WebServlet;
import com.vaadin.flow.server.VaadinServlet;

@WebServlet(name = "frontendServlet", asyncSupported = true, urlPatterns = "/frontend/*")
public class FrontendServlet extends VaadinServlet {
}
于 2018-10-01T20:21:22.507 回答