【问题标题】:How does one properly deploy a Polymer CLI app on an Apache web server?如何在 Apache Web 服务器上正确部署 Polymer CLI 应用程序?
【发布时间】:2016-07-17 23:09:10
【问题描述】:

为了了解 Polymer,我决定尝试构建他们的一些入门项目。

我的第一次尝试涉及 Polymer CLI。我选择基于抽屉应用模板制作应用。使用polymer build 构建没有问题,使用polymer serve 运行演示也没有问题。

但是,在两个构建目录之一上运行 Python Web 服务器时,我遇到了一些问题。运行 Python Web 服务器时,应用程序似乎可以正常运行,直到我在浏览器上点击刷新。然后它返回一条关于无法找到'/view2'的错误消息;只有在网站根目录刷新是没有问题的。

我尝试将相同的应用程序部署到 Apache Web 服务器。类似的问题发生在除了网络应用的第一页以外的任何地方刷新都会导致问题。

然后我尝试了Polymer Starter Kit(在 Polymer 项目网站的其余部分似乎无法访问该地址)。通过适当的 gulp 命令构建或预览时,我没有任何问题。然后我尝试在构建结果上运行 Python Web 服务器并在各种网页上点击刷新。这次刷新没有问题。

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

Internet 上很少有资源能够以简洁明了的方式解释如何将 Polymer 应用程序部署到生产级 Web 服务器。

如果我确实犯了错误,请告诉正确的过程。如果我没记错,也请告诉我。

【问题讨论】:

  • tomEE 服务器也有同样的问题...

标签: apache deployment webserver polymer


【解决方案1】:
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>

【讨论】:

    【解决方案2】:

    您需要在“app-location”组件上定义 use-hash-as-path 选项,然后您的 URL 必须包含哈希 (#) 符号,如 here 和示例 here 所述.

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

    【讨论】:

      【解决方案3】:

      对于聚合物 2.0 -

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

      This polymer page 讨论了构建聚合物的所有不同方法,并且可能也有一些用处。

      编辑-

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

      【讨论】:

      • 构建选项应该是--bundle 所以:polymer build --bundle
      猜你喜欢
      • 2016-04-10
      • 1970-01-01
      • 2020-09-17
      • 1970-01-01
      • 2018-07-06
      • 2017-10-21
      • 1970-01-01
      • 2019-01-03
      相关资源
      最近更新 更多