如何在Apache Web服务器上正确部署Polymer CLI应用程序?

5

为了更好地理解 Polymer,我决定尝试构建一些他们的起始项目。

我的第一个尝试是使用 Polymer CLI。我选择了基于抽屉应用模板的应用程序。我使用 polymer build 命令构建没有任何问题,使用 polymer serve 命令运行演示也没有问题。

但是,在两个构建目录中的任意一个上运行 Python web 服务器时,我遇到了一些问题。当运行 Python web 服务器时,该应用似乎可以正常运行,直到我在浏览器中刷新页面。然后它会返回一个有关无法找到“/view2”的错误消息;只有在网站根目录处刷新才不会出现问题。

我尝试将同样的应用部署到 Apache web 服务器上。刷新除了网站首页之外的任何页面都会导致问题。

然后我尝试了 Polymer Starter Kit(这个链接在 Polymer 项目网站的其他位置似乎无法访问)。我在构建过程中没有遇到任何问题,并且通过适当的 gulp 命令预览也没有问题。然后我尝试在构建结果上运行 Python web 服务器并刷新各个网页,这次没有任何问题。

此时可能很容易说 Polymer CLI 存在问题,但我想确保在部署 CLI 应用程序的过程中没有犯任何错误。

互联网上几乎没有清晰简明地解释如何将 Polymer 应用程序部署到生产级 Web 服务器的资源。

如果我犯了错误,请告诉正确的流程。如果我没有犯错误,请也告诉我。


我在使用tomEE服务器时遇到了同样的问题... - user6600768
3个回答

2
Apache add file .htaccess

    <ifModule mod_rewrite.c>
        Options +FollowSymLinks
        IndexIgnore */*
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule (.*) index.html
    </ifModule>

1

您需要在“app-location”组件上定义 use-hash-as-path 选项,然后您的URL必须包含哈希符号(#),如此处所述,并在此处中进行示例说明。

<app-location route="{{route}}" use-hash-as-path></app-location>
<a name=component href="#/component">Component</a>


0

对于 Polymer 2.0 -

执行 polymer build --bundle 并从您服务器的根目录提供服务,所有资源链接都是绝对的。

这个 Polymer 页面 讲述了构建 Polymer 的各种不同方式,可能也会有所帮助。

编辑-

同时打开 index.html 文件并查看第 21 至 25 行。我相信那里是您能够在从静态主机提供服务时指定应用程序根目录的地方。因此,您将构建捆绑版本,然后将 build/default/ 的内容复制到您提供服务的位置。


构建选项应该是 --bundle,因此命令为:polymer build --bundle - Thomas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接