我已经为聚合物安装了所有必需的包装。
我下载了Polymer-starter-kit并构建它。
如果我开始polymer serve
,我可以获得类似以下内容的页面:
但是,如果我将我的聚合物应用程序目录下的文件夹/build/bundled
复制到/path/to/tomcat/webapps
,我获得的页面只有grep背景,仅此而已。
我想知道如何在tomcat上正确部署聚合物应用程序。
如果我只是build
一种非常简单的聚合物,只有一种元素而不是聚合物 - 起始剂 - 套件,将/build/bundled
复制到/path/to/tomcat/webapps
后,页面可以正确显示
答案 0 :(得分:2)
至于聚合物问题
将Polymer配置为在这些基于Java Servlet的Web服务器上正常工作有时会非常棘手。对于初学者来说,打开开发工具来查看您收到的错误类型,可能您会看到一些不应该过于难以解决的失败导入。
这是使用servlet容器管理基于非servlet的应用程序的缺点。不要气馁可以做到,我们在Tomcat服务器上有几个应用程序正在生产中。
您可能不得不将polymer serve
抛出此项目的窗口,并设置本地Tomcat服务器来进行开发。因为这些行为完全不同。
要记住的事情
不确定您对项目的总体目标是什么,或者您需要对Tomcat环境进行多少调整(我认为这将是一个生产目标。)您将希望直接从头开始使用基于散列的路由。这些servlet容器将寻找用于处理URL的Java类。
答案 1 :(得分:2)
我能够在ROOT上下文中将聚合物starter-kit
应用程序部署到Tomcat,以便可以成功解决所有依赖关系。
只需运行polymer build
并复制\build\bundled
下%TOMCAT_HOME%\webapps\ROOT
文件夹的内容,然后启动Tomcat即可。
答案 2 :(得分:2)
感谢ynov's answer。它有帮助和有效。但它并不那么优雅。
有关here的另一个解决方法Deploying my application at the root in Tomcat:在conf/server.xml
中配置上下文根以使用您的应用:
<Context path="" docBase="polymer" debug="0" reloadable="true"></Context>
但是,如Apache Tomcat 7 Configuration Reference - The Context Container中所述:
建议不要将元素直接放在server.xml文件中。这是因为它使得修改Context配置更具侵入性,因为在不重新启动Tomcat的情况下无法重新加载主conf / server.xml文件。
聚合物 - 启动子 - 套件的实际问题无法正确部署,因为Tomcat上的webapp仍保留在聚合物 - 启动器 - 套件源代码中。 网站显示不正确是因为资源(htmls,图片,组件等)没有正确引用。
在polymer-starter-kit/index.html的原始代码中,资源的链接如下:
...
<!-- Homescreen icons -->
<link rel="apple-touch-icon" href="/images/manifest/icon-48x48.png">
<link rel="apple-touch-icon" sizes="72x72" href="/images/manifest/icon-72x72.png">
<link rel="apple-touch-icon" sizes="96x96" href="/images/manifest/icon-96x96.png">
<link rel="apple-touch-icon" sizes="144x144" href="/images/manifest/icon-144x144.png">
<link rel="apple-touch-icon" sizes="192x192" href="/images/manifest/icon-192x192.png">
...
但是,如果您将webapp部署在$TOMCAT/webapps/
这样的子目录$TOMCAT/webapps/polymer
中,则href="/images/manifest/icon-48x48.png"
之类的链接引用将无法正常工作,因为它引用了根目录。这就是之前的解决方法(即将webapp放在$TOMCAT/webapps/ROOT
)工作的原因。因此,诀窍是将链接更改为href="images/manifest/icon-48x48.png"
(或任何其他适合您想要使用的资源的正确路径的正确路径。)。
例如,在polymer-starter-kit/index.html
:
...
<!-- Homescreen icons -->
<link rel="apple-touch-icon" href="images/manifest/icon-48x48.png">
<link rel="apple-touch-icon" sizes="72x72" href="images/manifest/icon-72x72.png">
<link rel="apple-touch-icon" sizes="96x96" href="images/manifest/icon-96x96.png">
<link rel="apple-touch-icon" sizes="144x144" href="images/manifest/icon-144x144.png">
<link rel="apple-touch-icon" sizes="192x192" href="images/manifest/icon-192x192.png">
...
因为images/
和index.html
位于同一目录下。