在Tomcat容器上运行时,聚合物资源URL在“上下文”下不起作用

时间:2018-10-01 13:41:36

标签: vaadin vaadin10

我有一个简单的Vaadin Flow应用程序(与SpringBoot集成)部署在Tomcat下作为war文件。 App在开发人员模式的本地环境下运行良好,但是在上下文中部署到容器中时,它什么也没有显示。当我查看页面源代码时,我可以看到聚合物资源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">

1 个答案:

答案 0 :(得分:0)

计划在不久的将来对此行为进行改善,这里是issue link,用于跟踪进度。

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

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

@WebServlet(name = "frontendServlet", asyncSupported = true, urlPatterns = "/frontend/*")
public class FrontendServlet extends VaadinServlet {
}